Предполагается, что в регулярном выражении, если он соответствует одной альтернативе из чередования, он останавливается тут же, даже если осталось еще больше альтернатив (в регулярном выражении вне чередования нет никаких других токенов).
Источник
Этот шаблон, который ищет одно двойное слово (например, this this
)
\b([a-z]+)((?:\s|<[^>]+>)+)(\1\b)
У меня одна путаница, если я введу эту тему:
Это соответствуетс патерном.
"<i>whatever<i> whatever"
\b([a-z]+)
Совпадение
((?:<[^>]+>|\s)+)
Следует за одним TAG, поэтому второе альтернативное совпадение.
(\1\b)
Должны совпадать, если следуетто же слово возвращается в первых скобках.
Зачем совпадать, если после тега не следует '(\1\b)
', следует пробел.
Я знаю, что в чередовании существуют \s
.
Но не предполагается, что совпадение TAG потребляет чередование?
Почему альтернатива \s
все еще жива?