Ответ 1
Объяснение:
\&
соответствует \|
, что и оператор operator или оператор. Таким образом, оба контата должны совпадать, но будут выделены только последние.
Пример 1:
(Следующие тесты предполагают :setlocal hlsearch
.)
Представьте эту строку:
foo foobar
Теперь /foo
выделит foo
в обоих словах. Но иногда вы просто хотите сопоставить foo
в foobar
. Затем вы должны использовать /foobar\&foo
.
Как все работает. Часто ли используется? Я не видел его больше, чем несколько раз. Большинство людей, вероятно, будут использовать атомы нулевой ширины в таких простых случаях. Например. то же, что и в этом примере, можно сделать с помощью /foo\zebar
.
Пример 2:
/\c\v([^aeiou]&\a){4}
.
\c
- игнорировать регистр
\v
- "очень волшебный" (- > вам в этом случае не нужно избегать &
)
(){4}
- повторить один и тот же рисунок 4 раза
[^aeiou]
- исключить эти символы
\a
- буквенный символ
Таким образом, это довольно запутанное regexp будет соответствовать xxxx
, xxxx
, wXyZ
или wXyZ
, но не AAAA
или xxx1
. Помещая это простыми словами: сопоставьте любую строку из 4 буквенных символов, которая не содержит "a", "e", "i", "o" или "u".