【发布时间】:2018-07-20 19:43:59
【问题描述】:
如果我有一个包含多个文本实例的字符串,如下所示:
"img": "/static/thumbs/1607.02533v4.pdf.jpg"
提取这部分的正则表达式会是什么样子:
1607.02533v4.pdf
尝试过这样的事情:re.findall(r'(?<=thumbs/)(.*)(?=.jpg)') 来获取文本,但它似乎不起作用。
编辑:找出问题所在。比赛很贪心,需要加一个? .* 之后
re.findall(r'(?<=thumbs/)(.*?)(?=.jpg)')
【问题讨论】:
-
拇指后缺少转义字符。应该是
(?<=thumbs\/)(.*)(?=.jpg)。检查here -
@WStokvis 绝对不应该是
.*。 -
这个字符串是 JSON 吗?
-
你也可以试试这个:
/thumbs/(.*?).jpg -
如果你想使用正则表达式,它应该是
re.findall(r'"img"\s*:\s*"[^"]*/([^"]*)\.jpg"', s),但建议先使用json模块先获取正确的纯文本然后提取您需要的值更容易。
标签: python regex text-extraction