我对正则表达式一无所知,这就是为什么我在这里发布这个问题。任何人都可以帮我修改下面的正则表达式匹配吗?
它在字符串中查找以2个大写字母开头的单词。我需要修改它以找到以3个大写字母开头的单词。感谢。
$text = 'text TExt text TEXt teXT texT';
$total_words = preg_match_all('#(?<= )([^ ]*[A-Z][^ ]*[A-Z][^ ]*(?= )|[^ ]*[A-Za-z][^ ]*[0-9][^ ]*|[^ ]*[0-9][^ ]*[A-Za-z][^ ]*)(?= )#', $text, $matches);
echo $total_words;
答案 0 :(得分:3)
为什么不直接使用它:
[A-Z]{3}\w*
说明:
[A-Z]
它会在字符串
{3}
正好匹配3次
\w*
将匹配任何单词字符零次或多次
答案 1 :(得分:0)
简化你的正则表达式,
preg_match_all('#(?<!\S)[A-Z]{3}\w*(?!\S)#', $text, $matches);
然后计算返回数组中的元素。