Проблема в том, что в клан-формате используются регулярные выражения POSIX ERE .И они не поддерживают границы слов.
Так что <catch2/catch.hpp>
никогда не будет соответствовать второму правилу.Затем эта же строка оценивается для третьего правила, которое соответствует.
Если бы оно соответствовало второму правилу, оно бы остановилось на этом, но, поскольку оно не соответствовало, оно переходит к следующему правилу.
Просто удалите все \b
в регулярном выражении.Удалить их безопасно, потому что у вас уже есть границы слов: слева у вас есть <
, а справа - /
, поэтому, даже если вы можете использовать словарные слова, это будет бесполезно.
- Regex: '<(boost|catch2)\/([A-Za-z0-9.\/-_])+>'
Priority: 3
ПРИМЕЧАНИЕ: Имейте в виду, что -
внутри []
должен быть убран обратной косой чертой, если только он не помещен в последнюю позицию.Это потому, что он используется для диапазонов.Поэтому, когда вы пишете [A-Za-z0-9.\/-_]
, вы имеете в виду A-Za-z0-9.
или диапазон от /
до _
, что, вероятно, не означает, что вы таковы.