我正在尝试查找所有包含在双括号中并且在单词中间包含一个括号的单词,我使用的是 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/