java - 用于查找 [[ ]] 和 {{}} 之间的字符串的正则表达式

标签 java regex

如何在 [[ ]] 之间找到字符串?搜索答案后,我在下面找到了这个方法,但是我找不到 [[ ]] 的正则表达式,也找不到 {{ }.

我想做的是找到例如[[abc]]XXXXXXXXXX[[def]],并将abcdef保存为ArrayList。

String s = "[[abc]]XXXXXXXXXX[[def]]";
Pattern p = Pattern.compile("[[(.*?)]]")
Matcher m = p.matcher(s);
if (m.find()) {
    System.out.println(m.group(i)); // => "abc","def"
}

最佳答案

您必须双重转义左方括号(您可以对右方括号执行相同的操作),因为它们用于定义字符类:

Pattern p = Pattern.compile("\\[\\[(.*?)]]");

(与用于量词的花括号完全相同)

你可以阅读这个 fabulous post关于令人难以置信的方括号世界。

关于java - 用于查找 [[ ]] 和 {{}} 之间的字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18302228/

相关文章:

java - DynamoDB 中的全局二级索引是否需要唯一?

c++ - CPP + 正则表达式来验证 URL

javascript - 正则表达式在到达时停止检测链接

r - "'\w ' is an unrecognized escape"在 grep

java - 将字符串java中的数字相加

java - 如何模拟对象指针

java - 使用 long 类型的键和 long 类型的 hashset 值创建一个 hashmap

java - 当参数化类型传递层次结构时,在 Java 中创建泛型类型的实例吗?

Python 正则表达式前瞻

javascript - 特定格式的正则表达式(左括号和右括号括起来的有效十进制数字)