我正在使用Matcher。
鉴于此字符串:
Hi, I am a [l=BANANA] and I am [l=YELLOW]
我试过
\\[l=(.+)\]\
但在这种情况下,Matcher.group(1)是
l=BANANA] and I am [l=YELLOW
相反,我希望Matcher.group(1)成为
BANANA
和Matcher.group(2)
YELLOW
无论如何......我想要做的是消除[l =]标签,所以如果有转换方法
Hi, I am a [l=BANANA] and I am [l=YELLOW]
到
Hi, I am a BANANA and I am YELLOW
太棒了!
答案 0 :(得分:2)
这是因为.+
贪婪,这意味着它会尝试匹配尽可能多的字符。
你应该让它不情愿,即.+?
,这意味着它会尝试匹配尽可能少的字符。
更好的是,将.
替换为"除了]
"表达,即
"\\[l=([^\\]]+)\\]"
这是使用正则表达式将字符串匹配到分隔符的常用方法。