在PHP中用\ s匹配的空格是什么?

Ste*_*han 6 php regex

什么是转义序列匹配的字符的完整列表\ S在PHP?一些正则表达式包括垂直空间和此转义序列中的其他字符.

Sal*_*n A 4

来自pcrepattern 规格页面:

通用字符类型

\s     any white space character
Run Code Online (Sandbox Code Playgroud)

为了与 Perl 兼容,\s 没有用来匹配 VT 字符(代码 11),这使得它与 POSIX“空格”类不同。然而,Perl 在版本 5.18 中添加了 VT,PCRE 在版本 8.34 中也添加了 VT。默认的 \s 字符现在为 HT (9)、LF (10)、VT (11)、FF (12)、CR (13) 和 space (32),它们在“C”语言环境中定义为空格。如果发生特定于区域设置的匹配,则此列表可能会有所不同。例如,在某些语言环境中,“不间断空格”字符 (\xA0) 被识别为空格,而在其他语言环境中,VT 字符则不是。

因此\s将匹配 5 个字符以及更多字符,具体取决于:

  1. PCRE库版本
  2. 区域设置

该测试比较了不同 PHP 版本的 preg_match 的结果。

  • 我也到达这里寻找列表。但页面可能已更改。列表如下: \s 匹配的空白仅表示这 5 个字符:9 = 0x09 = 水平制表符、10 = 0x0A = 换行符、12 = 0x0C = 换页符、13 = 0x0D = 回车符、32 = 0x20 = 空格、 http://www.php.net/manual/en/regexp.reference.escape.php (2认同)