私は[]
が可能な文字の集合を表すことを知っていた -正規表現の違いb/w [ab]と(a | b)?
>>> p = r'^[ab]$'
>>>
>>> re.search(p, '')
>>> re.search(p, 'a')
<_sre.SRE_Match object at 0x1004823d8>
>>> re.search(p, 'b')
<_sre.SRE_Match object at 0x100482370>
>>> re.search(p, 'ab')
>>> re.search(p, 'ba')
でも...今日は相互に排他的なパターンを定義するために、括弧内の縦棒で表現に出会いました -
>>> q = r'^(a|b)$'
>>>
>>> re.search(q, '')
>>> re.search(q, 'a')
<_sre.SRE_Match object at 0x100498dc8>
>>> re.search(q, 'b')
<_sre.SRE_Match object at 0x100498e40>
>>> re.search(q, 'ab')
>>> re.search(q, 'ba')
これはと思われます上記と同じ機能を模倣するか、何か不足していますか?
PS:Python
では、かっこ自体が一致するテキストの論理グループを定義するために使用されます。私が2番目のテクニックを使用する場合、どのように両方のジョブにかっこを使用しますか?
ないあなたは括弧ビットで何を意味するかわから... –
はい、あなたは正しいです - '[AB]'と '(A | b) 'どちらも_exactly_と同じものにマッチします(しかし最初のものはより速くマッチします)。正規表現は、PythonやPerlで見つけても、自分自身の言葉であり、効果的に使うつもりなら、(暗黙の)構文を学ぶ必要があります。 (例えば、正規表現内のカッコは、正規表現の外のカッコと同じではありません。)[regular-expressions.info](http://www.regular-expressions.info)のチュートリアルに従うことをお勧めします。過ごす時間が何度も何度も報酬を受けるでしょう。 – ridgerunner