小编典典

匹配空格但不匹配换行符

all

我有时想匹配空格而不是换行符。

到目前为止,我一直在诉诸[ \t]. 有没有不那么尴尬的方法?


阅读 109

收藏
2022-04-02

共1个答案

小编典典

Perl 版本 5.10 及更高版本支持辅助垂直和水平字符类,\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

2022-04-02