php 中 space 的全部大写字符串
All caps string with space in php
我必须从字符串中提取 "THE NEED OF FOLLOWING A RELIGION "
这样的字符串。
我提取了 THE
、 NEED
、OF
等单个单词,但我需要完整的大写字母字符串,如 "THE NEED OF FOLLOWING A RELIGION"
但无法这样做,请帮忙。
preg_match_all("/[A-Z]*/", $html, $out);
谢谢
对原始代码的非常基本的修改,一次查找大于 1 的大写字母。
$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>';
输出:
Array
(
[0] => Array
(
[0] => WITH MIXED CASE
[1] => WE ONLY WANT
)
)
您的正则表达式只是漏掉了一些分隔符条件,即
Words has to be either followed or leaded by a space.
将上面的句子转换为正则表达式我们得到
[A-Z]*(?=\s)|(?<=\s)[A-Z]*
上面的正则表达式可以解释为
\sWORD
WORD\s
\sWORD\s
见DEMO。
您可以像 [A-Z ]
一样将白色 space 添加到您的 class 中。现在你可以获得大写单词的所有字符串,但也可以获得单个 spaces.To 的长凳避免获得单个 spaces 你使用这个 ([A-Z]+[A-Z ]*[A-Z])
我添加了 ()
来捕获匹配的结果。
您可以实际查看 here.
我必须从字符串中提取 "THE NEED OF FOLLOWING A RELIGION "
这样的字符串。
我提取了 THE
、 NEED
、OF
等单个单词,但我需要完整的大写字母字符串,如 "THE NEED OF FOLLOWING A RELIGION"
但无法这样做,请帮忙。
preg_match_all("/[A-Z]*/", $html, $out);
谢谢
对原始代码的非常基本的修改,一次查找大于 1 的大写字母。
$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>';
输出:
Array
(
[0] => Array
(
[0] => WITH MIXED CASE
[1] => WE ONLY WANT
)
)
您的正则表达式只是漏掉了一些分隔符条件,即
Words has to be either followed or leaded by a space.
将上面的句子转换为正则表达式我们得到
[A-Z]*(?=\s)|(?<=\s)[A-Z]*
上面的正则表达式可以解释为
\sWORD
WORD\s
\sWORD\s
见DEMO。
您可以像 [A-Z ]
一样将白色 space 添加到您的 class 中。现在你可以获得大写单词的所有字符串,但也可以获得单个 spaces.To 的长凳避免获得单个 spaces 你使用这个 ([A-Z]+[A-Z ]*[A-Z])
我添加了 ()
来捕获匹配的结果。
您可以实际查看 here.