Regex xml中的正则表达式
Eclipse软件具有搜索正则表达式的功能。 我想搜索xml父节点不是Regex xml中的正则表达式,regex,eclipse,Regex,Eclipse,Eclipse软件具有搜索正则表达式的功能。 我想搜索xml父节点不是的所有0.0.1-SNAPSHOT字符串 最简单的方法是什么?编辑:完成重写 只要标记不能嵌套,这是可能的,但只有这样(所有关于不尝试将XML与正则表达式匹配的常见警告都适用。只要XML中有注释或CDATA部分,所有赌注都将取消) (?s)0\.0\.1-快照(?!(?:(!))*) 说明: (?s) # Turn on singleline matching mode <version>
的所有0.0.1-SNAPSHOT
字符串
最简单的方法是什么?编辑:完成重写 只要
标记不能嵌套,这是可能的,但只有这样(所有关于不尝试将XML与正则表达式匹配的常见警告都适用。只要XML中有注释或CDATA部分,所有赌注都将取消)
(?s)0\.0\.1-快照(?!(?:(!))*)
说明:
(?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
(?s)#打开单线匹配模式
0\.0\.1-快照#匹配此字符串
(?!#但只有在无法匹配此正则表达式时才执行此操作:
(?:#尝试匹配。。。
(?!编辑:完成重写
只要
标记不能嵌套,这是可能的,但只有这样(所有关于不尝试将XML与正则表达式匹配的常见警告都适用。只要XML中有注释或CDATA部分,所有赌注都将取消)
(?s)0\.0\.1-快照(?!(?:(!))*)
说明:
(?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
(?s)#打开单线匹配模式
0\.0\.1-快照#匹配此字符串
(?!#但只有在无法匹配此正则表达式时才执行此操作:
(?:#尝试匹配。。。
(?!所以您只想在Z
标记中找到该字符串,对吗(如果它不是“父”标记)?我不确定您放置它的方式是否与我的相同。我可以有不同的嵌套Z标记,例如0.0.1-SNAPSHOT
。我不想要的是0.0.1-SNAPSHOT
让我换一种方式说:所有xml节点都有父节点(根目录除外)。特别是节点0.0.1-SNAPSHOT有一个父节点。我不希望此父节点是,仅此而已(不管节点“父节点”可能有其他子节点、兄弟节点、父节点或其他任何子节点)好吧,现在我很困惑。所以它不是bam
,而是barbazbam
,你想匹配bar
和baz
,但不是bam
?是的,你的第二个例子是正确的,尽管我只想匹配bar和baz,如果bar或baz等于0.0.1-SNAPSHOT。所以你想只在Z
标记中找到这个字符串,对(如果它不是“父”标记)?我不确定您放置它的方式是否与我的相同。我可以有不同的嵌套Z标记,例如0.0.1-SNAPSHOT
。我不想要的是0.0.1-SNAPSHOT
让我换一种方式说:所有xml节点都有父节点(根节点除外)。特别是,节点0.0.1-SNAPSHOT有一个父节点。我不希望此父节点是,仅此而已(不管节点“父节点”可能有其他子节点、兄弟节点、父节点或其他任何子节点)好吧,现在我感到困惑了。所以不是bam
而是barbazbam
,你想匹配bar
和baz
,而不是bam
?是的,你的第二个例子是正确的,尽管我只想匹配bar和baz,如果bar或baz等于0.0.1-SNAPSHOT。这仍然捕捉到artifactID groupID 0.0.1-SNAPSHOT I看不到以下内容:。但我忘了将(?s)
修饰符粘贴到单行正则表达式中。请重试。这仍然捕获artifactID groupID 0.0.1-快照。我没有看到以下内容:。但我忘了将(?s)
修饰符粘贴到单行正则表达式中。请重试。