Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで正規表現の代替はどのように機能しますか?


代替案とその応用

実際のアプリケーションでは、2つ以上の選択肢のいずれかに一致する正規表現を使用することがよくあります。また、数量詞を使用して複数の式に適用することもあります。このような目標はすべて、括弧でグループ化することで達成されます。また、代替案を使用する場合は、縦棒(|)で交互に適用します。

垂直バーの使用(|)

代替案は、いくつかの異なる代替案のいずれかと一致させる必要がある場合に役立ちます。たとえば、正規表現の航空路|飛行機|爆撃機は、航空路、飛行機、爆撃機を含むすべてのテキストと一致します。同じことは、正規表現の空気(ウェイ|飛行機)|爆撃機を使用することによっても達成されます。

正規表現(airways |airplane | bomber)を使用した場合、3つの式のいずれかに一致します。正規表現(air(ways | planet)| bomber)について考えてみます。これは、最初の式が一致する場合は2つのキャプチャ(最初のキャプチャとして航空路または飛行機、2番目のキャプチャとしてウェイまたは飛行機)、2番目の式が一致する場合は1つのキャプチャ((爆撃機)。 ?:のように開始括弧をたどることで、キャプチャ効果をオフに切り替えることができます:

(空気(?:ウェイ|飛行機)|爆撃機)

一致する場合(航空路、飛行機、爆撃機)、キャプチャは1つだけになります。

次のコードは、上記のポイントを示しています-

import re
s = 'airways aircraft airplane bomber'
result = re.findall(r'(airways|airplane|bomber)', s)
print result
result2 = re.findall(r'(air(ways|plane)|bomber)', s)
print result2
result3 = re.findall(r'(air(?:ways|plane)|bomber)', s)
print result3
出力

これにより、出力が得られます

['airways', 'airplane', 'bomber']
[('airways', 'ways'), ('airplane', 'plane'), ('bomber', '')]
['airways', 'airplane', 'bomber']

  1. 正規表現を使用してPythonで単一の文字を照合するにはどうすればよいですか?

    次のコードを使用して、Python正規表現を使用して、指定された文字列の任意の1文字を照合して出力します。これは、指定された文字列の任意の1文字と一致します 例 import re foo = 'https://www/twitter/index.php 403' result = re.findall(r'.', foo) print result 出力 これにより、出力が得られます ['h', 't', 't', 'p', 's', ':', '/

  2. Pythonで正規表現修飾子はどのように機能しますか?

    正規表現リテラルには、マッチングのさまざまな側面を制御するためのオプションの修飾子が含まれる場合があります。修飾子はオプションのフラグとして指定されます。排他的論理和(|)を使用して複数の修飾子を指定でき、これらのいずれかで表すことができます- 以下は、さまざまなre修飾子とその機能のリストです。 1. re.I 大文字と小文字を区別しないマッチングを実行します。 2. re.L 現在のロケールに従って単語を解釈します。この解釈は、アルファベットのグループ(\wと\W)、および単語の境界の動作(\bと\B)に影響します。 3 re.M $を(文字列の終わりだけでなく)行の