точное совпадение в regrex при использовании vim, man или less

при использовании vim, man или less, я хочу сделать точное совпадение в regrex

например, при использовании человека, я хочу проверить аргумент '-c'

если я использую

/'-c' 

совпадение может быть -cim -covert …… blabla

но я хочу только совместить '-c'

как выполнить точное сопоставление? благодаря!

Более короткое выражение vim, чтобы гарантировать, что символы не предшествуют или не следуют

 /\(^\|\s\)\@<=-c\> 

Человек / меньше эквивалент:

 /(^|\s)-c\b 

Дополнительное объяснение (Vim):

Вероятно, наиболее полезной частью регулярного выражения Vim является -c\> которая просто говорит «Ищите» -c ', но только если никакие буквы не появятся сразу после ». В большинстве случаев вы, возможно, избегаете просто искать с помощью /-c\> , но для полноты я включил выражение, чтобы проверить, что происходит до '-c'. Это выражение является \(^\|\s\)\@<= , что выглядит сложным только потому, что синтаксис регулярных выражений Vim является немного более подробным (в котором он требует, чтобы вы избегали группировки круглых скобок и «или»). Выражение \(^\|\s\) означает «начало строки или пробельный символ». Когда вы помещаете \@<= после этого, это означает: «На самом деле это не так, просто убедитесь, что оно доходит до следующей части регулярного выражения» (что действительно полезно для операций поиска и замены). Практически, вам, вероятно, не нужна часть \@<= . Вы можете сократить его дальше, опуская это и добавив \v , что говорит Vim, что вы не избежите причудливого синтаксиса. Это будет выглядеть как /\v(^|\s)-c> .

Объяснение человека / меньше эквивалента:

Гораздо проще. Для синтаксиса регулярного выражения, используемого less (который является основным пейджером по умолчанию), \b – это то же самое, что и Vim \> , и вам не нужно избегать круглых скобок или символа канала. Он просто ищет строку «-c», которая встречается в начале строки или сразу после символа пробела и гарантирует, что после нее не появятся другие буквы.

В vim используйте

 /\(^\|\s\)-c\($\|\s\) 

less :

 /(^|\s)-c($|\s\) 

Вы можете использовать границы isk и word в vim, но это также будет соответствовать другим вещам, которые могут быть параметрами; безопаснее явно искать пробелы.