正则表达式澄清?

时间:2018-07-20 19:44:00

标签: python regex text-extraction

如果我有一个字符串,其中包含几个看起来像这样的文本实例:

“ img”:“ /static/thumbs/1607.02533v4.pdf.jpg”

提取该部分的正则表达式是什么样的:

1607.02533v4.pdf

尝试了类似这样的操作:(((2, 1.3), (4.1, 3), (5.3, 2.6), (2.9, 0.7), (2, 1.3))) (((2, 1), (5, 3))) (((2, 1), (2.225, 1.15)), ((4.7, 2.8), (5, 3)), ((2.225, 1.15), (4.7, 2.8))) ,以使文本介于两者之间,但似乎不起作用。

编辑:找出问题所在。这场比赛很贪心,需要加上一个?在。*

之后

re.findall(r'(?<=thumbs/)(.*)(?=.jpg)')

2 个答案:

答案 0 :(得分:0)

这是一个假设文件都具有相同命名约定的示例:

import re
s = '''
"img": "/static/thumbs/1607.02533v1.pdf.jpg"
"img": "/static/thumbs/1608.02533v2.pdf.jpg"
"img": "/static/thumbs/1609.02533v3.pdf.jpg"
"img": "/static/thumbs/1610.02533v4.pdf.jpg"
'''
re.findall(r'thumbs/([0-9.a-z]+.pdf)', s)

输出:

['1607.02533v1.pdf', '1608.02533v2.pdf', '1609.02533v3.pdf', '1610.02533v4.pdf']

说明:

thumbs/([0-9.a-z]+.pdf)

thumbs/开头 有一个包含1个或多个字符0-9.a-z的组,并以.pdf

结尾

答案 1 :(得分:0)

执行1607.02533v4.pdf

对于C#ASP.NET 2.0-4.7.2,.NET Core,C ++,Delphi:

[0-9]+\.[0-9]+v[0-9]+\.\w{3}

执行1607.02533v4

对于C#ASP.NET 2.0-4.7.2,.NET Core,C ++,Delphi:

[0-9]+\.[0-9]+v[0-9]+

Java 8,Javascript,MySQL,Orqcle 11gR2&12c,PHP 7.0.4-4.1.17,Visual Basic 6,Python 2.7,Python 3.6,Ruby 2.4-2.5,VBScript:

[0-9]+\.[0-9]+v

这里online RegEx tester

Result