28

В Vim, если я хочу выполнить поиск, который соответствует "planA" или "planB", я знаю, что могу сделать это:

/plan[AB]

Это работает, потому что регулярное выражение допускает либо A, либо B в качестве набора символов.

Но как я могу указать одну из двух полных строк? Например, "planetAwesome" или "planetTerrible"?

Это будет соответствовать обоим из них, наряду с "planetAnythingHereAsLongAsItsJustLetters":

planet\([a-zA-Z]*\)

Как я могу сопоставить только строки, которые точно соответствуют "planetAwesome" или "planetTerrible"?

2 ответа2

41
/planet\(Awesome\|Terrible\)

Чтобы просмотреть соответствующую документацию, введите :help / и прокрутите вниз до раздела «Определение шаблона».

4

Чтобы добавить к ответу Жиля, вы можете добавить несколько вещей:

/\<planet\(Awesome\|Terrible\)\>

\< отмечает начало слова (в основном буквенно-цифровые символы)
\> отмечает конец слова (по существу, буквенно-цифровые символы)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .