Этот вопрос является хорошим примером того, почему вы всегда должны указывать аромат регулярного выражения, которое вы используете.Большинство разновидностей регулярных выражений предоставляют способ сопоставления границ слов, и большинство из них используют для этого \b
.Согласно этой странице , wxRegEx позволяет вам выбрать один из трех вариантов: BRE, ERE или ARE.Из них только ARE поддерживает границы слов и использует \y
, а не \b
.Если вы укажете wxRE_ADVANCED
при компиляции, это регулярное выражение будет соответствовать любой строке, содержащей одно из слов good
, better
или best
:
\y(good|better|best)\y
Судя по примерам, которые выЯ думаю, что вы можете путать регулярные выражения с глобусами.Например, *.[ch]
- это глобус, который вы используете для сопоставления имен файлов, заканчивающихся на .c
или .h
;регулярное выражение для этого будет \.[ch]$
.На сайте, на который я ссылался ранее, есть хорошее руководство по регулярным выражениям, но больше всего меня беспокоит то, что регулярное выражение не должно описывать всю строку, как это делает глоб.Вот почему мне не нужно было начинать регулярное выражение с .*
, но я сделал должен добавить $
в конец, чтобы он не совпадал со строками, такими как foo.cs
или bar.html
.