正则表达式java将xpathstring拆分为块(分隔符[.+]??)
我有几个XPath表达式需要拆分。 范例
NODEA[NODEA1/NODEA11][NODEA2/NODEA21][NODEA3/NODEA31]/NODEB
方括号中的东西可能会多次出现。 我需要一个看起来像
NODEA[NODEA1/NODEA11]
NODEA[NODEA2/NODEA21]
NODEA[NODEA3/NODEA31]
NODEA/NODEB
我不知道正则表达式会是什么样子。 我想我得开始从右向左读了。 除aktual方括号帽子外的所有方形后背都将被删除? 也许我错了,有更好的解决办法
由于我不经常与regex合作,因此非常感谢您的帮助
非常感谢 当做 马里奥
# 1 楼答案
对于给定的示例,您可以使用alternation获得不同的部分:
^{}
这将匹配
NODEA
|
或\[[^]]+]
匹配例如[NODEA1/NODEA11]
通过匹配一个开头[
,然后匹配一个]
然后匹配一个]
|
或NODEB
您可以循环查找匹配项,并将这些部分添加到集合中,如ArrayList
然后移除并捕获该列表的第一个条目
String nodeA
,它将是NODEA
,其余的保持原样对于集合中的其余部分,您需要在
nodeA
的值前面加上前缀。然后,您可以在集合中循环,并在集合中的所有条目前加上nodeA
:Demo Java