使用单词开始搜索并停止HTML标记

时间:2019-09-10 04:47:21

标签: regex python-3.x expression

我正在使用带有正则表达式脚本的python在网站中进行搜索,以获取文件名。

这是我的表情:

\File Name.*\b

这是结果:

File Name : AXAOISAOISAOISASAOIASOAIS<br>Format: ABC<br>File Size : 585 MB<br>

问题是,我只想获取AXAOISAOISAOISASAOIASOAIS之类的文件名,而在我的正则表达式中,我可以找到一种在遇到<br>标记时停止获取文本的方法。

任何人都可以帮助我对正则表达式进行补充,以使其停止在br标签上。

3 个答案:

答案 0 :(得分:1)

尝试(File Name.+?)<br>

关键点是使+运算符不贪心,因此它在第一个<br>之后停止。所需结果存储在第一个捕获组中。

Demo

此外,您可以将<br>包裹在正向前部,这样就不需要captuirng组:File Name.+?(?=<br>)

Another demo

答案 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