6

私は正規表現を初めて使用しますが、なぜこれが「present」を出力しないのですか?

tale = "It was the best of times, ... far like the present ... of comparison only. "
a = re.compile('p(resent)')
print a.findall(tale)

>>>>['resent']
4

2 に答える 2

3

presentここで正確な単語と一致させようとしている場合は、次のようなものを試してください。

In [297]: tale="resent present ppresent presentt"

In [298]: re.findall(r"\bpresent\b",tale)
Out[298]: ['present']
于 2012-12-25T03:01:42.520 に答える
1

Pythonドキュメントから

パターンに1つ以上のグループが存在する場合は、グループのリストを返します

グループ化だけにグループを使用し、キャプチャには使用しない場合は、キャプチャ以外のグループを使用します。

a = re.compile('p(?:resent)')

この正規表現には意味がありませんが、より複雑な正規表現には適切な場合があります。例:

a = re.compile('p(?:resent|eople)')

'present'または'people'のいずれかに一致します。

于 2012-12-25T03:06:34.370 に答える