gpt4 book ai didi

Java正则表达式获取括号之间的值

转载 作者:行者123 更新时间:2023-12-01 18:52:50 25 4
gpt4 key购买 nike

从[[text]]获取值的正则表达式。我已经尝试过正则表达式

  "((?<=[[)*(?=]])*)+"  the value between [[ ]] is not obtained.

例如,从字符串[[text]]中,我们应该获取文本。

Pattern pat = Pattern.compile("((?<=\\[[)*(?=\\]])*)");
Matcher matcher = pat.matcher("[[text]]");
String next ="";
while(matcher.find()) {
next = matcher.group(0);
break;
}
System.out.println(next); //next should be text

最佳答案

在正则表达式中将括号 [] 用作实际字符时,需要对其进行转义。您还需要添加一些内容来实际捕获括号之间的内容。如果您确定该值不能包含 ],则可以使用 .* 或使用我的方法。

((?<=\[\[)([^\]]*)(?=\]\]))+

甚至不需要使用回溯和前瞻,除非您明确需要从匹配中免除这些限制器。这也同样有效:

 \[\[([\]]*\]\]

显然,当您将它们放入字符串时,您需要添加额外的 \ 来转义字符串的 \ ...这样它们更具可读性.

关于Java正则表达式获取括号之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15205531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com