2017-05-16 6 views
1

私はPythonで正規表現でいくつかのパターンを検索しようとしていました。 '[A-Za-z] +'というパターンを使用してもわかるように、大文字のA〜Zまたは小文字のa〜zの文字列を見つけることを意味します。私が試したとき だから(答えが続く)コードの私の一行は、このシーケンス[[A-Z] [a-z]]はPythonの正規表現を意味しますか?

>>> re.findall('[A-Za-z]+', 'This is my area!') 
['This', 'is', 'my', 'area'] 

たいくつかのそれは空のリスト、単一のコード行を返さ「[[AZ] [AZ]] +」を別のパターン

文字セット内で2つのシーケンスを使用すると、どのようなパターンが作成されますか? ご案内ください。

+2

2番目のパターンで何を達成したいですか? –

+0

@ C-Otto私はちょうど実験中でした。 –

答えて

6

エンジンが扱う[[A-Z][a-z]]+として:任意の大文字(A-Z)又は[を可能にする最初の文字クラスとして

  • [[A-Z]]+
  • 任意の小文字を許可します [が二文字クラスとして
  • [a-z]を逃れている代わりに[\[A-Z]として考えて(AZ)は、だから、[b]かに一致する1以上の]

することができますAa]またはAa]]]]]]]など、あなたの文字列「This is my area!」と一致しません。

さらに試してみるとregex101 demoです。角括弧の

ネスティング:

が良く、角括弧のネストが正規表現でどのように機能するかを理解するために、別の例を考えてみ[[[ABC]]]

開く括弧が見つかったら([)を示しています文字クラスの開始すべての後続の角括弧を開きます[は、終了角括弧に遭遇するまで、エスケープされた\[として扱われます。文字クラスの終わりを示す。それをテストするために

、これらの例を見てみましょう:

  • [[[ABC]]]]{2}続い[\[ABC]と同じです。例A]]

  • は、[\[ABC]と同じであり、その後に]{3}と同じです。例[]]]

  • [[[[[ABC]]]]]は、[\[ABC]と同じであり、その後には]{4}と同じです。例A]]]]

これは役に立ちます。

+0

ありがとう、その正規表現のリンクは本当に役立ちます! –

関連する問題