📜  php regex 不可打印字符 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:12.749000             🧑  作者: Mango

PHP regex 不可打印字符

当我们在使用正则表达式时,有时需要匹配非打印字符。在PHP中,有些不可打印的字符是不能被直接写成正则表达式的,需要使用转义字符来标识。

以下是一些常见的不可打印字符和它们的正则表达式表示:

  • 空格:\s[\f\n\r\t\v]
  • 换行符:\n
  • 回车符:\r
  • 制表符:\t
  • 垂直制表符:\v
  • 文件结尾(EOF):\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中正则表达式匹配不可打印字符的方法。