2

LinuxでPython2.7.3を使用する。これが逐語的なシェルセッションです。

>>> f = open("feed.xml")
>>> text = f.read()
>>> import re
>>> regexp1 = re.compile(r'</?item>')
>>> regexp2 = re.compile(r'<item>.*</item>')
>>> regexp1.findall(text)
['<item>', '</item>', '<item>', '</item>', '<item>', '</item>', '<item>', '</item>']
>>> regexp2.findall(text)
[]

これはバグですか、それともPythonの正規表現について理解していないことがありますか?

4

2 に答える 2

5

デフォルトでは「.」改行には一致しません。試してみてください

regexp2 = re.compile(r'<item>.*</item>', re.DOTALL)
于 2012-07-30T15:39:49.967 に答える
0

この質問に対する最良の答えは次のとおりです。XML などの非正規言語を解析するために正規表現を使用しないでください。それは 1 人の SO ユーザーを狂気に駆り立てました。 別の関連リンク。

于 2012-07-30T15:37:53.623 に答える