Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 是否可以通过正则表达式提取具有两个不同名称的相同字段?_Regex - Fatal编程技术网

Regex 是否可以通过正则表达式提取具有两个不同名称的相同字段?

Regex 是否可以通过正则表达式提取具有两个不同名称的相同字段?,regex,Regex,我试图使用正则表达式从日志文件中提取几个字段。我的正则表达式运行良好。我只希望其中一个提取字段与两个不同的名称关联 在上面的示例中,我希望提取的字段“cms_relative_time”也被命名为“relative time”。这意味着,相对时间和cms相对时间应该引用相同的值 首先,我不确定在正则表达式中是否可能。我尝试了几件事,比如复制相同的代码和替换名称,但都不起作用 (?P<cms_relative_time>\d+\.\d+)(?P<relative_time>

我试图使用正则表达式从日志文件中提取几个字段。我的正则表达式运行良好。我只希望其中一个提取字段与两个不同的名称关联

在上面的示例中,我希望提取的字段“cms_relative_time”也被命名为“relative time”。这意味着,相对时间和cms相对时间应该引用相同的值

首先,我不确定在正则表达式中是否可能。我尝试了几件事,比如复制相同的代码和替换名称,但都不起作用

(?P<cms_relative_time>\d+\.\d+)(?P<relative_time>\d+\.\d+)
(?P\d+\.\d+(?P\d+\.\d+)

您可以将一个命名的捕获组放入另一个组中:

(?P<relative_time>(?P<cms_relative_time>\d+\.\d+))
|                 |                             ||
|                 |---------- Group 2 ----------||
|------------------ Group 1 ---------------------|
(?P(?P\d+\.\d+)
|                 |                             ||
||--------第2组----------||
|------------------第一组---------------------|

查看您的。

一旦匹配项消耗了输入的一部分,就不能再使用它。但是,你用的是什么语言?你不能重复使用同一个捕获组吗?试试@Tim Biegeleisen:我在SPLUNK应用程序中使用。不特定于语言。不幸的是,我不能使用与cms和cms的其他数据的相对时间相同的名称。@Wiktor Stribiżew:它起作用了。干杯:):)