2015-09-05 3 views

ответ

3

Вы можете использовать это негативное опережение регулярное выражение на основе:

<(whoName)>(?!self\s*<).*?<\/\1> 

RegEx Demo

Regex ломка:

<(whoName)> # Match <whoName> and capture it ($1) 
(?!self\s*<) # Negative lookahead that means current position is not followed by literal 
      # self followed by 0 or more spaces and < 
.*?   # Match 0 or more characters (non-greedy) 
<\/\1>  # Match closing tag using back-reference to captured group #1 
+0

Это регулярное выражение не соответствует selfie или любая подстрока, начинающаяся с нуля – Santiago

+0

Да, я обновлял и записывал более подробную информацию. Проверьте обновленный ответ. – anubhava

1

Используйте это регулярное выражение:

^<whoName>((?!self<).)*</whoName> 

Испытано в Notepad ++ и regex101

1

Вы можете найти решение here.

Вы можете использовать что-то вроде

<whoName>(?!self)[a-z0-9]*<\/whoName> 

(попробовать это здесь: https://regex101.com/r/vW8sP3/1).

Как вы можете себе представить, соответствующая часть (?!self).

Смежные вопросы