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

18

我有一个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后面的数字,但是仍然没有发现明显的问题。它可以匹配行的开头,但不能在中间匹配。


13
match 匹配字符串开头!search 在字符串中间匹配! - Bhargav Rao
2
https://dev59.com/pXVC5IYBdhLWcg3wykej - Ciro Santilli OurBigBook.com
1个回答

35

re.match 尝试从字符串/文本的开头匹配模式。相反,您需要使用re.search分组

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

r'SKU (\d+)将匹配出在SKU和一个空格之后的,长度为1或更多的数字(\d)组合!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接