简体   繁体   中英

Python regex match middle of string

I have a python string, that I'm trying to extract. I have a interesting issue:

>>> 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'>

I'm trying to mach a the number after ASIN. I can't still see a obvious problem. Its matching the beginning of the line, but not in the middle.

You need to use re.search and grouping ,and Note that re.match match the pattern from beginning of the string :

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

r'SKU (\\d+) will match any combination of digits ( \\d ) with length 1 or more that came after SKU and a space!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM