[解決済み】単語間のスペースを許容する正規表現
質問
記号を禁止し、文字と数字のみを許可する正規表現が欲しいのですが、どうすればいいですか?以下の正規表現はうまくいくのですが、単語と単語の間にスペースを入れることができません。
^[a-zA-Z0-9_]*$
例えば、この正規表現を使った場合、"HelloWorld"は問題ないが、"Hello World"はマッチしない。
スペースを許可するようにするには、どのようにいじればよいのでしょうか?
解決方法は?
tl;dr
の中にスペースを入れるだけです。 文字クラス .
^[a-zA-Z0-9_ ]*$
さて、厳密には...。
上記は正確には正しくない。という事実のために
*
というのは
ゼロまたはそれ以上
の場合、通常はマッチしない次のようなケースにすべてマッチしてしまいます。
- 空の文字列、""。
- スペースのみで構成された文字列、" "。
- Hello World のように、先頭または末尾に空白を含む文字列。
- 単語と単語の間に複数のスペースを含む文字列、"Hello World".
元々は、OPが基本的な質問をしているため、厳密性を気にする必要はないだろうと思い、そのような細かいことは気にしないようにしていました。しかし、この質問が人気を博している今、私は言いたいのです。
...使用 ステマの答え .
というのは、私の味付けでは(
\w
) に変換されます。
^[a-zA-Z0-9_]+( [a-zA-Z0-9_]+)*$
(関係なく@stemaにupvoteしてください)
この(そして@stemaの)回答について注意すべき点がいくつかあります。
-
を許可したい場合 マルチプル 単語と単語の間にスペースを入れる場合(たとえば、誤ってダブルスペースを許容したい場合や、PDFからコピーペーストしたテキストを扱う場合など)には、単語と単語の間のスペースに
+
の後にスペースを入れてください。^\w+( +\w+)*$
-
タブや改行(空白文字)を許可したい場合は、スペースを
\s+
:^\w+(\s+\w+)*$
ここで、私は
+
をデフォルトで使用するようにします。なぜなら、例えばWindowsの改行は に という空白文字が並んでいます。\r\n
が必要なので+
を使えば、両方をキャッチできます。
まだ動かない?
使用している正規表現の方言を確認してください。
Javaなどの言語では、バックスラッシュをエスケープする必要があります。
すなわち
\\w
と
\\s
. 古い、あるいはもっと基本的な言語やユーティリティでは、例えば
sed
,
\w
と
\s
は定義されていないので、文字クラスで書き出します。
例
[a-zA-Z0-9_]
と
[\f\n\p\r\t]
それぞれ
* この質問にはタグが付いています vb.net しかし、25,000以上のビューから推測すると、この質問に遭遇しているのはそのような人々だけではありません。現在、googleの検索フレーズで最初にヒットするのはこれです。 正規表現スペースワード .
関連
-
[解決済み] Regexオプショングループ
-
[解決済み] 正規表現で変数を使うには?
-
[解決済み] regex オプションのワードマッチ
-
[解決済み] 単語を含まない行にマッチする正規表現
-
[解決済み] 正規表現における非捕捉グループとは何ですか?
-
[解決済み] JavaScriptの正規表現でマッチしたグループにアクセスするにはどうすればよいですか?
-
[解決済み] 有効な正規表現を検出するための正規表現はありますか?
-
[解決済み] プレーンなURLをリンクに置き換えるには?
-
[解決済み] DNSホスト名またはIPアドレスにマッチする正規表現?
-
[解決済み】正規表現でスペースにマッチングさせる
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Vimで正規表現に置換すると、`E488: Trailing characters`が発生します。
-
[解決済み] 与えられた文字列が与えられた部分文字列を含んでいるかどうかを見つけるための、scala の慣用的な方法は何ですか?
-
[解決済み] ColdFusion を使用して XML 文字列から余分なホワイトスペースをすべて削除するにはどうすればよいですか?
-
[解決済み] SQLite のクエリで正規表現を使うにはどうしたらいいですか?
-
[解決済み] 特定の文字が後にない'単語'を探す
-
[解決済み] スペースとタブの任意のシーケンスにマッチする正規表現を作成する方法
-
[解決済み] 正規表現 AND 演算子
-
[解決済み] 正規表現で複数行にまたがる任意の文字にマッチさせるにはどうしたらよいですか?
-
[解決済み] 正規表現における角括弧と括弧の違いは何ですか?
-
[解決済み] Grepの「Invalid range end」-バグか機能か?