我必须从字符串中提取"THE NEED OF FOLLOWING A RELIGION "
之类的字符串。
我提取了THE
,NEED
,OF
这样的单词...但我需要完整的大写字母字符串"THE NEED OF FOLLOWING A RELIGION"
,但不能这样做,请帮助。< / p>
preg_match_all("/[A-Z]*/", $html, $out);
由于
答案 0 :(得分:3)
对原始代码进行非常基本的修改,以便一次查找超过1的大写字母。
-x
输出:
$str='This is a string WITH MIXED CASE words and WE ONLY WANT capitals';
preg_match_all("/[A-Z\s]{2,}/", $str, $out);
echo '<pre>',print_r($out,true),'</pre>';
答案 1 :(得分:0)
你的正则表达式错过了分隔符的某些条件,这是
单词必须由空格跟随或引导。
将上面的句子转换为我们得到的正则表达式
[A-Z]*(?=\s)|(?<=\s)[A-Z]*
上面的正则表达式可以解释为
\sWORD
WORD\s
\sWORD\s
请参阅DEMO。
答案 2 :(得分:0)
您可以像[A-Z ]
一样为您的班级添加空白区域。现在你可以用大写单词获得所有字符串,但也可以获得单个空格的长度。为了避免获得单个空格,你可以使用([A-Z]+[A-Z ]*[A-Z])
我添加了()
来捕获匹配的结果。
您可以查看操作here。