0

これが私のコードです:

import re

p = re.compile('(?P<name>[^|]*)|(?P<desc>[^|]*)')
m = p.match('jack|a good boy')
name = m.group('name')
desc = m.group('desc')
print name  # jack
print desc  # None

'|'の後にdescを取得するにはどうすればよいですか?

4

1 に答える 1

1

一致するには、|それをエスケープする必要があります。そうしないと、パターンは最初または最後のグループのいずれかに一致します。しかし、両方ではありません。

import re

p = re.compile('(?P<name>[^|]*)\|(?P<desc>[^|]*)')
m = p.match('jack|a good boy')
name = m.group('name')
desc = m.group('desc')
print name  # jack
print desc  # a good boy

コードを少し変更したことに注意してください。に逃げ|\|

于 2012-08-18T05:17:27.363 に答える