Regex / Php - 需要找到以超过2个大写字母开头的单词

时间:2015-07-31 09:02:57

标签: php regex

我对正则表达式一无所知,这就是为什么我在这里发布这个问题。任何人都可以帮我修改下面的正则表达式匹配吗?

它在字符串中查找以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;

2 个答案:

答案 0 :(得分:3)

为什么不直接使用它:

[A-Z]{3}\w*

说明:

[A-Z]它会在字符串

的开头看到一个大写字母

{3}正好匹配3次

\w*将匹配任何单词字符零次或多次

演示:http://www.phpliveregex.com/p/c6j

答案 1 :(得分:0)

简化你的正则表达式,

preg_match_all('#(?<!\S)[A-Z]{3}\w*(?!\S)#', $text, $matches);

然后计算返回数组中的元素。

相关问题