>> print(re.match('ASIN', s))None>>> print(re.match('SKU', s))<_s" />
Вопрос:

Python регулярное выражение соответствует середине строки

python regex python-3.x python-2.7

8959 просмотра

1 ответ

734 Репутация автора

У меня есть строка 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. Я до сих пор не вижу очевидной проблемы. Соответствует началу строки, но не посередине.

Автор: Arun Источник Размещён: 03.03.2015 08:01

Ответы (1)


25 плюса

83754 Репутация автора

Решение

Вам нужно использовать re.searchи группировку , и заметку, которая 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пробела!

Автор: Kasramvd Размещён: 03.03.2015 08:03
Вопросы из категории :
32x32