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

我怎样才能得到'|'之后的说明?

4

1 回答 1

1

要匹配 a|你必须逃避它。否则,您的模式将匹配第一组或最后一组。但是,不是两者兼而有之。

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 回答