正则表达式.重复一个模式

本文关键字:一个 模式 正则表达式 | 更新日期: 2023-09-27 18:15:11

我有一个这样的字符串:

Literal text1: XXXXX Literal text2: XXXXX

其中XXX为未知长度和未知字符的文本,可以是数字,也可以是字符或符号。具有相同文本的字符串可以重复X次,如下所示:

Literal text1: XXXXX Literal text2: XXXXX
Literal text1: XXXXX Literal text2: XXXXX
Literal text1: XXXXX Literal text2: XXXXX
Literal text1: XXXXX Literal text2: XXXXX
...

是否存在一个正则表达式,无论行数如何都可以匹配,并且无论要获取的值的数量如何都可以获得所有XXXXX字段。

正则表达式.重复一个模式

通常这是你会使用的任何类型的"全局匹配"功能,你的正则表达式风格。(例如,在Python中它是re.findall;在Perl中是/.../g。)

Python示例:

import re
for match in re.findall(r"Literal text1: (.*?) Literal text2: (.*?)", your_str):
    # Do something with the match
    print match.group(1)
    print match.group(2)

从你的问题中不清楚,但是使用反向引用,这个正则表达式将匹配任何XXXXX在每个匹配行的XXXXX是相同的:

('w+) text1: (.*?) '1 text2: '2

例如this将匹配

abcd text1: foo abcd text2: foo

和'$2'将是捕获foo

编辑:您可以阅读到Literal开始的下一行,而不是阅读到$结束。

这也可以工作Literal's*'w+:'s*(.*?)Literal's*'w+:'s(.*?)Literal

组1:XXXXX for text1.

组2:XXXXX for text2