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

Aru*_*run 13 python regex python-2.7 python-3.x

我有一个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'>
Run Code Online (Sandbox Code Playgroud)

我想在ASIN之后加工一个数字.我还是不能看到一个明显的问题.它匹配行的开头,但不在中间.

Kas*_*mvd 25

您需要使用re.search分组,并注意re.match匹配从字符串的开头模式:

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

r'SKU (\d+)将匹配数字(\d)的长度为1或更多的数字组合SKU和空格!