2つ以上の連続した文字を検索する正規表現


98

文字列に2つ以上の連続したアルファ文字が含まれているかどうかを判断する必要があります。2つ以上[a-zA-Z]並べて。例:

"ab" -> valid
"a1" -> invalid
"a b" -> invalid
"a"-> invalid
"a ab" -> valid
"11" -> invalid

回答:


204

これでうまくいくはずです:

[a-zA-Z]{2,}

{2}カンマなしでも可能ですよね?
アレクサンダーミルズ

17
アレクサンダー、いくつかのことを明確にするために:{2}は、長さが2でなければならないことを意味します。{2、}は、式の長さが=> 2であることを意味します
Shmarkus 2018年

1

個人的に(ヌービーとして)私が使用したもの:

[0-9][0-9]+.

しかし、サイモンのものは、はるかに優れています!= D


0

[a-zA-Z] {2、}は、2つ以上の同一の連続する文字に対しては機能しません。これを行うには、任意のキャラクターをキャプチャしてから、次のようにキャプチャを繰り返す必要があります。

(。)\ 1

括弧はをキャプチャします。これは任意の文字を表し、\ 1はキャプチャの結果です-基本的にその文字の連続した繰り返しを探します。同一の連続した文字を特定したい場合は、「任意の文字」を文字クラスに置き換えてください...

([a-zA-Z])\ 1

連続して繰り返される小文字または大文字を検索します。「abc1223」ではなく「abbc123」に一致します。それらの間にスペース(つまりab)を許可するには、キャプチャされた文字とリピートの間の正規表現にオプションのスペースを含めます。

([az] AZ])\ s?\ 1


2文字くらいなので、誤解されていると思います。あなたの正規表現は別の場合です:2つの類似した文字!
csabinho

-4

[a-zA-Z]の代わりに[Az]を使用して、小さくて大文字のアルファ文字を取得できると確信しています http://www.w3schools.com/jsref/jsref_obj_regexp.asp


22
-1:これは、参照や教育にw3schoolsを使用してはならない理由のもう1つのすばらしい例です。[A-z]文字以上に一致します。具体的には、角かっこ、円記号、キャレット、アンダースコア、バックティックにも一致します。
Tim Pietzcker 2012

確かに、@ TimPietzckerの言うことは正しいです。彼が言及した文字はZとの間aにあるので、(誤って)そのようなパターンに含まれます。私は2番目の推奨事項です:w3schoolsを使用しないでください!このような微妙に悪い情報がたくさんあります。
Andrew Barber

5
スタックを最初に熱狂させたので、思った以上に刺されました。それで、Azを含めることによって、それは[AZから、私が望まないものの束とaz]の大文字と大文字以外のすべての文字コードに一致しますか?danshort.com/ASCIImap
ケビン

だから私は[!-+]のようなことを言うことができますか?また、[AZ]と同じ[65-90]のような正規表現内の文字コードにアクセスする方法はありますか?
ケビン

@Kevin[65-90]5- 9(これも含む6)と0
csabinho
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.