请帮助我在Java中解决此问题。
input string = <V2>UTM_Source:google|UTM_Medium:cpc|UTM_Campaign:{Core|IN|Desktop|BMM|Top Cities|TS}|
UTM_Content:{Compare Car Insurance}|UTM_Term:
我想用“ |”分割但里面没有花括号 因此输出将是:
<V2>UTM_Source:google
UTM_Medium:cpc
UTM_Campaign:{Core|IN|Desktop|BMM|Top Cities|TS}
UTM_Content:{Compare Car Insurance}
UTM_Term:
谢谢。
答案 0 :(得分:0)
因此,基本上,您希望同时匹配所有整个 {...}
序列,或者换句话说,将它们视为正则表达式中的单个字符:{{1 }}使用此片段作为带有单个“常规非管道”字符的替换的首选,然后让整个过程重复进行,我们避免在花括号内进行虚假匹配:
\{.*?\}
或者正如Sven所指出的,您甚至不需要最后一个|或捕获组:
((?:\{.*?\}|[^|])+)\|