2016-11-02 6 views
1

以下は簡単なデモです。単語を照合して指定された文字列を分割するには、\Wを使用します。かっこの有無に違いがあるのはなぜですか? re moduleドキュメントからPythonの正規表現 W:括弧のない対を使用

>>> s = "abc:def:ghi" 
>>> p = "(\W+)" 
>>> q = "\W+" 
>>> import re 
>>> re.split(p, s, flags=re.UNICODE) 
['abc', ':', 'def', ':', 'ghi'] 
>>> re.split(q, s, flags=re.UNICODE) 
['abc', 'def', 'ghi'] 
+2

[関連ドキュメント](https://docs.python.org/2/library/re.html#re.split)の2番目の文で説明しています。ここで質問をする前に、少なくともドキュメントをチェックすることが期待されます。 – user2357112

+0

私は尋ねる前にそれを見ましたが、ここで私はその文が何を意味するのか正確に尋ねています。 – Bruce

+0

文章は、デモが正しく動作することを確認したことを意味します。異なる入力が与えられたときに関数が異なる出力を生成することは注目に値するのはなぜですか? –

答えて

6

キャプチャ括弧はパターンで使用されている場合は、パターン内のすべてのグループのテキストも結果のリストの一部として返されますが。

参考のために、カッコ内の正規表現の部分をラップすると、capturing groupが作成されます。これらはパターンのグループであり、後で個々のエンティティとして参照できます。

+0

私はちょうどこの文で混乱しています。 – Bruce

+1

Da * n!わかった!私は推論の間に間違って\ Wを\ wと見なすので、混乱しました...それは愚かな間違いですが、感謝です! – Bruce

+0

ありがとうございます。私はあなたの編集を見ました。グループのキャプチャの概念はよく理解されていましたが、私はこのAPIが悪い設計になっていると言わなければなりません。正規表現を変更するよりも、一致するコンポーネントを含めるようにオプションの引数を使用すると、分離されるべき別の問題である。とにかく、受け入れるための十分な答え!ありがとう! – Bruce

関連する問題