[解決済み] 空白にマッチするが、改行にはマッチしない
2022-03-17 13:41:35
質問
空白をマッチングさせたいが、改行はマッチングさせないことがある。
これまでは
[ \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
関連
-
[解決済み] 正規表現による逆マッチ[重複]の場合
-
[解決済み] TCL/EXPECTで$expect_outを使用して変数を割り当てるにはどうすればよいですか?
-
[解決済み] 単語を含まない行にマッチする正規表現
-
[解決済み] XHTMLの自己完結型タグを除くオープンタグにマッチするRegEx
-
[解決済み] JavaScriptの正規表現でマッチしたグループにアクセスするにはどうすればよいですか?
-
[解決済み] grepによるネガティブマッチング(fooを含まない行にマッチする)
-
[解決済み] 正規表現の全出現回数をマッチングさせる方法
-
[解決済み】JavaScriptの正規表現を複数行に渡って使用するには?
-
[解決済み] [Solved] Match linebreaks - \n or \r?
-
[解決済み】MySQLで正規表現による置換を行うには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン