В Vim, если я хочу выполнить поиск, который соответствует «planA» или «planB», я знаю, что могу сделать это:
/plan[AB]
Это работает, потому что регулярное выражение допускает либо A, либо B в качестве набора символов.
Но как я могу указать одну из двух полных строк? Например, "planetAwesome" или "planetTerrible"?
Это будет соответствовать обоим из них, наряду с «planetAnythingHereAsLongAsItsJustLetters»:
planet\([a-zA-Z]*\)
Как я могу сопоставить только строки, которые точно соответствуют "planetAwesome" или "planetTerrible"?
plan[ABC]
соответствуетplanA
,planB
иplanC
одинаково хорошо.Ответы:
Чтобы просмотреть соответствующую документацию, выполните выдачу
:help /
и прокрутите вниз до раздела «Определение шаблона».источник
\m
,\M
,\v
, или\V
. Существует также'magic'
опция , но обычно лучше оставить ее в покое, так как она имеет глобальный эффект (если не переопределена одним из вышеуказанных флагов)./\vplanet(Awesome|Terrible)
Чтобы добавить к ответу Жиля, вы можете добавить несколько вещей:
\<
отмечает начало слова (по существу, буквенно-цифровые символы)\>
отмечает конец слова (по существу, буквенно-цифровые символы)источник