Java Regex根据具有嵌套尖括号的尖括号选择文本
我想根据以下场景选择文本。我尝试了几个正则表达式,但仍然无法使用一个正则表达式覆盖所有场景 设置1Java Regex根据具有嵌套尖括号的尖括号选择文本,java,regex,Java,Regex,我想根据以下场景选择文本。我尝试了几个正则表达式,但仍然无法使用一个正则表达式覆盖所有场景 设置1 结果应为两组和 结果应为两组和 设置2 sampletext>结果应为两组sampletext和 foundnotfound>结果应为两组和notfound> notfound结果应为两组和notfound notFoundString notfound>结果应为两组和notfound> notFoundEmpty>结果应为两组和 设置3 结果应为两组和 >1000结果应为两组和1000 thre
结果应为两组和
结果应为两组和
设置2
sampletext>
结果应为两组sampletext和
foundnotfound>
结果应为两组和notfound>
notfound
结果应为两组和notfound
notFoundString notfound>
结果应为两组和notfound>
notFoundEmpty>
结果应为两组和
设置3
结果应为两组和
>1000
结果应为两组和1000
thread.duration>1000>
结果应为两组thread.duration和>1000>
设置4
12345678
结果应为两组1234和5678
add.sample.result
结果应为两组add.sample.result和
我试过的正则表达式
]*)>|(\S+
这在集合1和集合4中效果很好,但在集合2和集合3中,它捕获的组多于所需的组|(\S+)
这对集合2和4很有效,但在集合1和集合3中给出错误的结果((?:<[^<>]*(?:<[^<>]*(?:<[^<>]*>[^<>]*)*>[^<>]*)*>)+)|(\S+)
((?:)+)|(\S+)
见
它要么匹配并捕获两组(?:)+
或\S+
模式
详细信息
-匹配一个或多个连续出现的(?:)+
-或|
-1+非空白字符\S+