我正在使用带有正则表达式脚本的python在网站中进行搜索,以获取文件名。
这是我的表情:
\File Name.*\b
这是结果:
File Name : AXAOISAOISAOISASAOIASOAIS<br>Format: ABC<br>File Size : 585 MB<br>
问题是,我只想获取AXAOISAOISAOISASAOIASOAIS
之类的文件名,而在我的正则表达式中,我可以找到一种在遇到<br>
标记时停止获取文本的方法。
任何人都可以帮助我对正则表达式进行补充,以使其停止在br标签上。
答案 0 :(得分:1)
尝试(File Name.+?)<br>
关键点是使+
运算符不贪心,因此它在第一个<br>
之后停止。所需结果存储在第一个捕获组中。
此外,您可以将<br>
包裹在正向前部,这样就不需要captuirng组:File Name.+?(?=<br>)
答案 1 :(得分:0)
^(File)\s+(Name)\s+(\:)([\S\s]*?)(?:<)([\S\s]*)$
这应该为您提供文件名AXAOISAOISAOISASAOIASOAIS
作为第四个捕获文件。
答案 2 :(得分:0)
这是一条路:
import re
str = '''File Name : AXAOISAOISAOISASAOIASOAIS<br>Format: ABC<br>File Size : 585 MB<br>'''
print(re.search(r'^File Name\s*:\s*(.+?)(?=<br>)', str).group(1))
输出:
AXAOISAOISAOISASAOIASOAIS
说明:
^ # beginning of line
File Name # literally
\s*:\s* # a colon with 0 or more spaces around
(.+?) # capture group 1, 1 or more any character, not greedy
(?=<br>) # positive lookahead, make sure we have "<br>" after