我已经为PHP正则表达式函数编写了以下正则表达式:
\[\[.*?\]\]
这匹配双方括号之间的单词或短语。现在我想要找到一个正则表达式,可以匹配两个或更多连续的(相同或不同的)匹配项。我已经尝试过
(\[\[.*?\]\]){2,}
通过这个解决方法:正则表达式匹配连续重复单词。但是,它们都没有起作用。有没有更好的想法?
我的目标是匹配例如[one][two][three]
。正则表达式的第一部分将匹配 [one]
,我正在尝试获取整个短语[one][two][three]
。
谢谢!
(\[\[.*?\]\])\1+
。请提供测试字符串和期望的输出,因为问题听起来有点不清楚。你所说的“相同或不匹配”是什么意思?以及为什么它没有起作用? - Wiktor Stribiżew([[.*?]])(?:\s*(?1))+
?或者(?:\s*[[.*?]]){2,}
? - Wiktor Stribiżew[one][two][three]
,正则表达式的第一部分将匹配[one]
,我正在尝试获取整个短语[one][two][three]
。这样清楚吗?谢谢! - despinoUY([.*?]){2,}
。或者更加优雅的写法:(?:[[^][]*]){2,}
。或者你想捕获第一个[one]
吗?那么使用([[^][]*])(?1)+
。你需要什么样的输出结构?上述任何一种对你有用吗? - Wiktor Stribiżew[one][two][three]
。抱歉我表达不够清楚!:( - despinoUY