小编Coc*_*oco的帖子

Perl:正则表达式在重复模式之间获取所有文本

我想为以下内容创建一个正则表达式.

我有一些如下文字:

field = "test string";
type =  INT;
funcCall(.., field, ...);
...
text = "desc";

field = "test string 1";
type = FLOAT;
funcCall(.., field, ...);
...
text = "desc 2";

field = "test string 2";
type = FLOAT;
funcCall(.., field, ...);
...
text = "desc 3";

.... keeps repeating
Run Code Online (Sandbox Code Playgroud)

基本上我正在尝试创建一个正则表达式,它将从第一个"field ="的开头到第二个"field ="的开头获取所有文本.它必须跳过函数调用中使用的字段文本.

我目前有以下内容:

my @overall = ($string =~ m/field\s*=.*?/gis);
Run Code Online (Sandbox Code Playgroud)

但是,这只是获得文本"field =".没有"?" 它从第一个到最后一个实例获取所有数据.

我也尝试过:

my @overall = ($string =~ m/field\s*=.*field\s*=/gis);
Run Code Online (Sandbox Code Playgroud)

然而,这将使我得到所有其他实例,因为它占有第二个"field ="字符串.有什么建议?

regex perl parsing regexp-grammars

4
推荐指数
2
解决办法
987
查看次数

标签 统计

parsing ×1

perl ×1

regex ×1

regexp-grammars ×1