Это позитивный взгляд . Он смотрит, происходит ли конкретное подвыражение после этой точки. Но он не потребляет ничего в матче:
Позитивный прогноз работает точно так же. q(?=u)
соответствует q
, за которым следует u
, без учета u
части совпадения. Позитивная прогнозная конструкция представляет собой пару круглых скобок, с открывающей скобкой, за которой следует знак вопроса и знак равенства. - RegularExpressions.info
Как вы можете заметить, lookaround особенно полезен при замене текста, поскольку вам не нужно включать окружающую среду в текст замены. Например, чтобы заменить каждый q
, за которым не следует u
, на qu
, вы можете сделать
replace 'q([^u])' by 'qu\1'
но он захватывает следующий символ, потому что он является частью совпадения, и снова вставляет его позже. Вы также можете использовать lookaround:
replace 'q(?!u)' by 'qu'
, где только q сопоставляется и заменяется, поэтому включение части совпадения в строку замены больше не требуется.