I次のPythonの正規表現があります。Pythonの正規表現:のfindAll()と検索()
>>> p = re.compile(r"(\b\w+)\s+\1")
\b
: ワード境界
\w+
: 一つ以上の英数字
を\s+
: 1つ以上の空白(、
\t
、\n
、..)
\1
: グループ1の後方参照(= (..)
の間の部分)
この正規表現は、単語の全二重出現箇所を見つける必要 - 2つの出現箇所である場合間に空白を入れてお互いに隣り合っています。 検索機能を使用する場合
正規表現が正常に動作するようです:
>>> p.search("I am in the the car.")
<_sre.SRE_Match object; span=(8, 15), match='the the'>
た試合は、私が予想していたと同じように、the the
です。奇妙な行動がのfindAll機能である:
>>> p.findall("I am in the the car.")
['the']
た試合は今だけthe
です。なぜ違い?
findall'戻っ 'ためだけキャプチャグループ(またはそれ以外は完全一致)。 –
https://docs.python.org/3/library/re.html#re.findall「パターンに1つ以上のグループが含まれている場合は、グループのリストを返してください」 – melpomene
ああ、今すぐ表示されます。ありがとうございました。だから私は問題を解決するために非キャプチャグループを使用する必要がありますか?今すぐ試してみます.. –