我有时想匹配空格而不是换行符。
到目前为止,我一直在诉诸[ \t]. 有没有不那么尴尬的方法?
[ \t]
Perl 版本 5.10 及更高版本支持辅助垂直和水平字符类,\v以及\h,以及通用空白字符类\s
\v
\h
\s
最干净的解决方案是使用 水平空白 字符类\h。这将匹配 ASCII 集中的制表符和空格、扩展 ASCII 中的不间断空格或任何这些 Unicode 字符
U+0009 CHARACTER TABULATION U+0020 SPACE U+00A0 NO-BREAK SPACE (not matched by \s) U+1680 OGHAM SPACE MARK U+2000 EN QUAD U+2001 EM QUAD U+2002 EN SPACE U+2003 EM SPACE U+2004 THREE-PER-EM SPACE U+2005 FOUR-PER-EM SPACE U+2006 SIX-PER-EM SPACE U+2007 FIGURE SPACE U+2008 PUNCTUATION SPACE U+2009 THIN SPACE U+200A HAIR SPACE U+202F NARROW NO-BREAK SPACE U+205F MEDIUM MATHEMATICAL SPACE U+3000 IDEOGRAPHIC SPACE
垂直空格 模式\v不太有用,但匹配这些字符
U+000A LINE FEED U+000B LINE TABULATION U+000C FORM FEED U+000D CARRIAGE RETURN U+0085 NEXT LINE (not matched by \s) U+2028 LINE SEPARATOR U+2029 PARAGRAPH SEPARATOR
有 7 个垂直空白字符匹配\v,18 个水平空白字符匹配\h。\s匹配二十三个字符
所有空白字符都是 垂直 或 水平 的,没有重叠,但它们不是真子集,因为它们\h也匹配 U+00A0 NO-BREAK SPACE,\v也匹配 U+0085 NEXT LINE,两者都不匹配\s