空白を一致させたいが、改行は一致させたくない場合があります。
これまで私はに頼ってきました[ \t]
。それほど厄介な方法はありませんか?
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
23文字に一致
すべての空白文字は、重複のない垂直または水平のいずれかですが、\h
U + 00A0 NO-BREAK SPACEに\v
も一致し、U + 0085 NEXT LINEにも一致するため、適切なサブセットではありません。どちらも一致しません。\s
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加