Утверждение ww
означает, что есть символы, соответствующие \w
по обе стороны от текущей точки.!
инвертирует его, что означает <!ww>
совпадения:
- В начале строки
- В конце строки
- Когда есть не-
\w
символ перед текущей позицией (например, между "+" и "a") - Когда после текущей позиции есть не-
\w
символ (например, между "a" и "+"")
По сути, это означает, что пробел никогда не может рассматриваться как возникающий между двумя символами слова.Однако между несловесными символами или между словесным символом и несловесным символом можно рассматривать пробелы.
Это следует из того, во многих языках, которые мы могли бы захотеть проанализировать.Например, рассмотрим ab+cd
.Значение по умолчанию ws
будет соответствовать любой стороне +
, но, например, не будет совпадать в пределах идентификатора.
Для языков, где это не подходит, это просто вопрос переопределения значения по умолчаниюws
для того, что нужно этому языку.