1

Предположим, вы хотите выбрать следующие строки: необязательный пробел, за которым следует положительное целое число, а затем более необязательный пробел.

Вот регулярное выражение, которое работает для этого:

:g/^\s*\d\+\s*/

Оператор * не экранирован, а + -. Escape * нарушает регулярное выражение. Так же как и не избежать + .

Есть ли хорошее объяснение этому? В идеале что-то, чтобы сделать правило интуитивно понятным. С vim я всегда изо всех сил пытался писать регулярные выражения из-за необычных правил побега, поэтому я хотел бы получить некоторую информацию, которая заставит меня все щелкнуть.

1 ответ1

2

Это по историческим причинам, и это нарушит совместимость, если он будет изменен. Тем не менее, вы можете добавить префикс к вашему шаблону \v чтобы включить "очень волшебный", так что вам не нужно делать особого экранирования. Смотрите :help /\v .

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