gpt4 book ai didi

php - 结构\H、\V 和\N 是什么意思?

转载 作者:IT王子 更新时间:2023-10-29 00:12:13 25 4
gpt4 key购买 nike

以下构造没有很好的文档记录,但从特定版本的 PHP 开始它们确实有效;这些是哪些版本,这些构造是什么以及哪些其他实现支持这些?

  • \H
  • \V
  • \N

此线程是 The Stack Overflow Regex Reference 的一部分.

最佳答案

\H 匹配任何不是水平空白的东西。这包括制表符和所有“空格分隔符”Unicode 字符。这与:

[^\h] <i>or</i>
[^\t\p{Zs}]

\V\v 的否定类 - 它被命名为“非垂直空白字符”并匹配那些不是垂直空白字符的任何字符在 Unicode 标准中被视为换行符,将与 \v 匹配,与 Perl 5 中引入的以下内容相同:

[^\v] <i>or</i>
[^\n\cK\f\r\x85\x{2028}\x{2029}]

\N 匹配任何不是换行符 \n 的字符。很简单!

[^\n]

\V+\N+ 有什么区别?感谢 Avinash Raj用于询问。

如文档中指定的 Perl 5.10,\V[^\n\cK\f\r\x85\x{2028}\x{2029}] 并且不应匹配任何 \n, \r \f,以及 Ctrl+(Control char) (*尼克斯), 0x85 , 0x20280x2029 .

当您想要匹配水平文本中的所有内容 - \V+ - 或者简单地使用整个段落 - \N+ - 时,这些字符类非常方便且非常有效在其他各种用例中。


以下实现支持\H\V\N:

  • Perl 5.10
  • PCRE 7.2
  • PHP 程序员可能会发现哪些版本支持这些结构存在差异。由于它们来自 Perl 5,因此必须设置 PCRE 版本;您可以使用 phpinfo() 进行检查.默认情况下,PHP 5.2.2 支持。
  • Java 8 java.util.regex.Pattern\H\V 结构的支持已添加为实现 \h\v 的一部分,它是not true for Java 7 ,但是 \N 还不被支持。 Tested with JDK8u25.

关于php - 结构\H、\V 和\N 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26972688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com