2015-03-03 11 views
5

Mam ciąg python, który próbuję wyodrębnić. Mam interesujący problem:Python regex pasuje do środka ciągu

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

Próbuję mach numer po ASIN. Nadal nie widzę oczywistego problemu. Dopasowuje początek linii, ale nie w środku.

+7

"Dopasuj" pasuje do początku! "szukaj" pasuje w środku ciągu! –

+1

http://stackoverflow.com/questions/180986/what-is-the-difference-between-pythons-re-search-and-re-match –

Odpowiedz

13

Trzeba użyć re.search i grouping i Uwaga że re.match pasuje do wzorca od początku łańcucha:

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

r'SKU (\d+) dopasuje dowolną kombinację cyfr (\d) o długości 1 lub więcej, które przyszedł po SKU i przestrzeni!

Powiązane problemy