我如何使用php函数preg_match()测试字符串以查看是否存在任何空格?
示例
“对于空格,这句话将被测试为真”
“thisOneWouldTestFalse”
答案 0 :(得分:47)
如果您对任何空白区域(包括标签等)感兴趣,请使用\s
if (preg_match("/\\s/", $myString)) {
// there are spaces
}
如果您只对空间感兴趣,那么您甚至不需要正则表达式:
if (strpos($myString, " ") !== false)
答案 1 :(得分:4)
另请参阅解决此问题的this StackOverflow question。
并且,根据您是否要检测选项卡和其他类型的空格,您可能需要查看perl正则表达式语法,例如\ b \ w和[:SPACE:]
答案 2 :(得分:1)
您可以使用:
preg_match('/[\s]+/',.....)
答案 3 :(得分:0)
[\\S]
大写 - 'S'肯定会奏效。
答案 4 :(得分:0)
如何将ctype_graph用于此目的?这会将空间范围扩展为任何“空白字符”,它不会在屏幕上打印任何可见的内容(如\ t,\ n)。 但这是原生的,应该比preg_match更快。
$x = "string\twith\tspaces" ;
if(ctype_graph($x))
echo "\n string has no white spaces" ;
else
echo "\n string has spaces" ;
答案 5 :(得分:0)
使用起来更快:
strstr($string, ' ');
答案 6 :(得分:0)
我们还可以使用以下表达式检查空格:
right
/\p{Zs}/
function checkSpace($str)
{
if (preg_match('/\p{Zs}/s', $str)) {
return true;
}
return false;
}
var_dump((checkSpace('thisOneWouldTestFalse')));
var_dump(checkSpace('this sentence would be tested true for spaces'));
如果您想简化/更新/探索表达式,请在regex101.com的右上角进行解释。如果您有兴趣,可以观看匹配的步骤或在this debugger link中进行修改。调试器演示了a RegEx engine如何逐步使用一些示例输入字符串并执行匹配过程的过程。