如何在PHP正则表达式中匹配空格字符?
我是说像"加文·舒尔茨"这两个词之间的空格。我使用正则表达式,以确保我只允许字母,数字和空格。但是我不知道怎么找到地方。这是我现在拥有的:
$newtag = preg_replace("/[^a-zA-Z0-9s|]/", "", $tag);
如何在PHP正则表达式中匹配空格字符?
我是说像"加文·舒尔茨"这两个词之间的空格。我使用正则表达式,以确保我只允许字母,数字和空格。但是我不知道怎么找到地方。这是我现在拥有的:
$newtag = preg_replace("/[^a-zA-Z0-9s|]/", "", $tag);
当前回答
我正在尝试[[:space:]]在一个实例中,它看起来像博客在WordPress中使用非标准的空格字符。看起来它会起作用。
其他回答
像这样使用它来留出一个单独的空间。
$newtag = preg_replace("/[^a-zA-Z0-9\s]/", "", $tag)
您还可以使用\b作为单词边界。对于名字,我会使用这样的东西:
[^\b]+\b[^\b]+(\b|$)
在Perl示例中修改为一个正则表达式
if( $fullname =~ /([^\b]+)\b[^\b]+([^\b]+)(\b|$)/ ) {
$first_name = $1;
$last_name = $2;
}
根据你想要的内容再次编辑:
$new_tag = preg_replace("/[\s\t]/","",$tag);
我正在尝试[[:space:]]在一个实例中,它看起来像博客在WordPress中使用非标准的空格字符。看起来它会起作用。
在我看来,在这种情况下使用REGEX是多余的。为什么不直接用strpos来找空格字符呢。此外,正则表达式中的空格字符没有什么特别之处,您应该能够像搜索任何其他字符一样搜索它。也就是说,除非您禁用了模式空白,在本例中几乎不需要这样做。
要精确匹配空格字符,可以使用八进制值\040(显示为八进制的Unicode字符)或十六进制值\x20(显示为十六进制的Unicode字符)。
下面是regex语法参考:https://www.regular-expressions.info/nonprint.html。