如何使用preg_match测试空格?

时间:2009-09-06 05:45:47

标签: php regex preg-match

我如何使用php函数preg_match()测试字符串以查看是否存在任何空格?

示例

“对于空格,这句话将被测试为真”

“thisOneWouldTestFalse”

7 个答案:

答案 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如何逐步使用一些示例输入字符串并执行匹配过程的过程。