📅  最后修改于: 2023-12-03 14:45:12.749000             🧑  作者: Mango
当我们在使用正则表达式时,有时需要匹配非打印字符。在PHP中,有些不可打印的字符是不能被直接写成正则表达式的,需要使用转义字符来标识。
以下是一些常见的不可打印字符和它们的正则表达式表示:
\s
或[\f\n\r\t\v]
\n
\r
\t
\v
\Z
还有一些不常见的不可打印字符,它们的正则表达式表示可以通过PHP内置的函数chr()
来获取:
echo bin2hex(chr(0)); // 输出 00
echo bin2hex(chr(31)); // 输出 1f
其中,bin2hex()
函数将二进制字符串转换为十六进制表示。
要匹配以上不可打印字符,可以使用如下正则表达式:
/[\x00-\x1f\x7f]/
其中,\x00-\x1f
表示ASCII码中的控制字符,\x7f
表示删除符。
在使用这个正则表达式匹配时,需要注意转义反斜杠:
$str = "hello\x00world";
if (preg_match('/[\x00-\x1f\x7f]/', $str)) {
echo "匹配成功!";
}
输出:
匹配成功!
以上就是PHP中正则表达式匹配不可打印字符的方法。