1

Eclipse 软件具有搜索正则表达式的功能。我想搜索<version>0.0.1-SNAPSHOT</version>其 xml 父节点不是的所有字符串<parent>

最简单的方法是什么?

4

1 回答 1

1

编辑:完全重写。

只要<parent>标签不能嵌套,这是可能的,但只有这样(并且所有关于不尝试将 XML 与正则表达式匹配的常见警告都适用。一旦您的 XML 中有评论或 CDATA 部分,所有的赌注都没有了)。

(?s)<version>0\.0\.1-SNAPSHOT</version>(?!(?:(?!</?parent>).)*</parent>)

解释:

(?s)              # Turn on singleline matching mode
<version>0\.0\.1-SNAPSHOT</version> # Match this string
(?!               # but only do this if it's impossible to match this regex here:
 (?:              # Try to match...
  (?!</?parent)   #  (as long as there is no <parent> or </parent> tag ahead)
  .               #  any character
 )*               # any number of times
 </parent>        # Then match </parent>
)                 # End of lookahead
于 2013-02-07T09:44:27.277 回答