大家。我想请帮忙用 PHP 编写正则表达式的语句
// This will match everything between "(" and ")"
'#('.preg_quote('(').')(.*)('.preg_quote(')').')#si'
//But I want to add one more condition
//-> Only match before "(" contains at least 2 Capital Letters continued.
例如,
// (bbbbb) <- No
// aa(bbbbb) <- No
// A(bbbbb) <-No
// AA(bbbbb) <- Yes
// AAA(bbbbb) <- Yes
我该怎么做?
非常感谢!!
最佳答案
你可以像这样制作正则表达式:
$regex = '#[A-Z]{2,}\((.*)\)#';
请注意,我已经删除了不区分大小写的模式修饰符 i
,因为您确实需要区分大小写。我还删除了 s
模式修饰符,因为我猜你不希望跨多行进行这种比较。
如果您预计一行中可能有多个未嵌套的括号集并且您希望分别捕获它们(即 AA(bbbbb)抄送(dddd)
).
另请注意,我删除了所有 preg_quote()
无意义的内容,因为它会使您的模式更难阅读。该函数最好保存在您可能将可变字符串数据插入到需要转义的模式中的情况下。这里不是这种情况。
关于php - 正则表达式,如何在 PHP 中添加更多匹配条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20056680/