Python正则表达式匹配字符串的中间位置

时间:2015-03-03 20:01:39

标签: python regex python-3.x python-2.7

我有一个python字符串,我正在尝试提取。我有一个有趣的问题:

>>> s="SKU 9780136058281, (ASIN B00A2KNZ2S, (binding Merchant: 'paperback' / 'hardcover'))"
>>> print(re.match('ASIN', s))
None
>>> print(re.match('SKU', s))
<_sre.SRE_Match object; span=(0, 3), match='SKU'>

我正试图在ASIN之后编号。我还是不能看到一个明显的问题。它匹配行的开头,但不在中间。

1 个答案:

答案 0 :(得分:22)

您需要使用re.searchgrouping以及注意 re.match匹配字符串开头的模式:

>>> s="SKU 9780136058281, (ASIN B00A2KNZ2S, (binding Merchant: 'paperback' / 'hardcover'))"
>>> import re
>>> re.search(r'SKU (\d+)',s).group(1)
'9780136058281'

r'SKU (\d+)会匹配\d之后的长度为1或更长的任何数字组合(SKU)和空格!