我在结构中的xml文件中有标识符:
<compoundIdentifier>XXX-YYY-ZZZ</compoundIdentifier>
<compoundIdentifier>AAA BB-YYY-ZZZ</compoundIdentifier>
在Notepad ++中使用RegEx我试图识别错误的键(结构不同于[string] - [string] - [string])
字符串可以是包含空格的任何字符串,其中-
转义为\-
所以这也是有效的:
<compoundIdentifier>some key-yet another key-key with \- in it</compoundIdentifier>
如何找到与此模式不匹配的标识符?
例如:
<compoundIdentifier>YYY-ZZZ</compoundIdentifier>
<compoundIdentifier>XXX</compoundIdentifier>
<compoundIdentifier>XXX--</compoundIdentifier>
答案 0 :(得分:1)
如果你的xml就这么简单,你可以使用这样的东西:
^<compoundIdentifier>(?!(?:(?:[^-\\]|\\.)+-){2}(?:[^-\\]|\\.)+</compoundIdentifier>$).+</compoundIdentifier>$
^
匹配该行的开头。
(?!(?:(?:[^-\\]|\\.)+-){2}(?:[^-\\]|\\.)+)
是一个负面的预测,以防止您不想匹配的特定结构的匹配。
[^-]+
匹配一个或多个非-
个字符。
(?:(?:[^-\\]|\\.)+-){2}
匹配两组非破折号字符,后跟破折号。
.+</compoundIdentifier>$
匹配任何留在同一行的结束标记之前的字符串。
答案 1 :(得分:1)