Python 正则表达式,用于匹配所有内容,直到最后一次出现 <br> before 字符串:



如何创建正则表达式以正确的方式返回数据?我想我应该以某种方式使用前瞻性,但我想不出正确的方法。

我的代码:

import re
txt = "Person:Tester Test<br>Count:1<br>Testing:test<br>Additional Information:test1<br>test2<br>test3<br>Temp:123<br>"
x = re.findall("(.*?<br>)", txt)
for i in x:
print("- " + i)

现在返回的内容:

- Person:Tester Test<br>
- Count:1<br>
- Testing:test<br>
- Additional Information:test1<br>
- test2<br>
- test3<br>
- Temp:123<br>

我想得到的结果是:

- Person:Tester Test<br>
- Count:1<br>
- Testing:test<br>
- Additional Information:test1<br>test2<br>test3<br>
- Temp:123<br>

您可以使用

.*?<br>(?=w+:|$)

请参阅regex演示。

详细信息

  • .*?-零个或多个字符(换行字符除外(尽可能少
  • <br>-固定字符串
  • (?=w+:|$)-一个正向前瞻,需要一个或多个字母/数字/下划线,然后在当前位置或字符串末尾的右侧添加一个冒号

最新更新