【问题标题】:Python regex match middle of stringPython正则表达式匹配字符串的中间
【发布时间】:2015-05-04 15:23:33
【问题描述】:

我有一个 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 之后的数字。我仍然看不到明显的问题。它匹配行的开头,但不在中间。

【问题讨论】:

标签: python regex python-3.x python-2.7


【解决方案1】:

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

>>> 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) 的任意组合!

【讨论】:

    猜你喜欢
    • 2020-11-29
    • 2011-11-28
    • 2020-10-19
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 2012-06-05
    • 2013-12-25
    相关资源
    最近更新 更多