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

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

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

最佳答案

re.match 尝试匹配字符串/文本/等的from beginning 模式。相反,您需要使用 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)和一个空格!

关于Python 正则表达式匹配字符串中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28840903/

相关文章:

python - 抓取多个帐户,也就是多次登录

在点后添加空格的Python正则表达式

javascript - 使用正则表达式查找文本文件中段落的开头和结尾

Python 2.7 导入错误 : no module named _ssl

python - Ubuntu 14.04 包依赖问题

python - 将正则表达式匹配替换为应用函数的结果

python - 如何在Python中将一列分成多列?

python - 从 python 中的 sqlite 表中读取原始数据

python - 在 Python 3.5 中复制时保留目录名称

python - set_language 在 django 国际化中不起作用