通用新行(qr / \ R /)找到的字节数是多少?

时间:2011-05-07 10:37:11

标签: regex perl newline

Generic new line(qr / \R /)找到了哪些字节?

2 个答案:

答案 0 :(得分:7)

要搜索Perl文档,请找出它们的安装位置:

perldoc -l perlfunc

/usr/lib/perl5/5.10.0/pod/perlfunc.pod

然后搜索.pod文件中的“标题”:

cd /usr/lib/perl5/5.10.0/pod
grep -n ^= *pod | grep '\\R'

perlrebackslash.pod:492:= item \ R

完成!

答案 1 :(得分:5)

Tad为您提供了一种搜索内容的方法,但有一种更简单的方法。通常,您可以通过查看perlre文档来开始回答正则表达式问题。在那里它提到\R,并引用你perlrebackslash。如果您不知道从哪里开始查看,通常主要的perl文档(即目录)可以指向正确的方向。

虽然\R/\r\n|\v/的特殊伪字符类,但从字节的角度来考虑它是错误的。它匹配Unicode认为行结束序列的任何内容:

  • 换行,U + 000A
  • 回车,U + 000D
  • CRLF,(U + 000D U + 000A)
  • 垂直标签,U + 000B
  • Form Feed,U + 000C
  • 下一行,U + 0085
  • 行分隔符,U + 2028
  • 段落分隔符,U + 2029

这些只是代码点,因此它们在数据中的出现取决于编码。你越早思考字节和正则表达式,你就会对最近的perls处理(字符)字符串感到更快乐。

您可以在我的Know your character classes under different semantics中阅读有关各种空白字符类的更多信息。