java - 使用正则表达式查找括号中包含单个字符的单词

标签 java regex

我正在尝试查找所有包含在双括号中并且在单词中间包含一个括号的单词,我使用的是 Java。

到目前为止,我已经有了这个,但还不是很有效。

\\[\\[[\\[|\\]]\\]\\]

有什么建议吗?

对于此示例输入 "hello [[wo[orld]]",我想找到 "[[wo[orld]]"

最佳答案

应该这样做:

String str = "hello [[wo[orld]]";

Pattern p = Pattern.compile("\\[\\[[^\\[\\]]*[\\[\\]][^\\[\\]]*\\]\\]");
Matcher m = p.matcher(str);

if (m.find())
    System.out.println(m.group(0));

输出:

[[wo[orld]]

模式分解:

  • \[\[ -- 两个初始 [[(你已经说对了!)
  • [^\[\]]* -- 除了 [] 零次或多次之外的东西
  • [\[\]] --“中间”括号符号
  • [^\[\]]* -- 除了 [] 零次或多次之外的东西
  • \]\] -- 两个结束 ]](你也想出了那个)

关于java - 使用正则表达式查找括号中包含单个字符的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7288424/

相关文章:

java - 我的 SQL 语法错误

java - 无法访问 Android 中的网络服务

java - 使用 mpj-express 读取控制台输入

java - 使用正则表达式查找不带空格的字符串中是否存在子字符串之一

javascript - 动态正则表达式

java - Wicket 7 无法在表单树中找到组件

java - 格式化查询结果

javascript - 具有动态变量的正则表达式

javascript - RegEx Javascript 正向回顾

python - 从python中的文本输出扩展的ip列表