首页 > 解决方案 > 同一个 perl 命名正则表达式提取的多个名称

问题描述

我正在使用其他人编写的正则表达式。我需要有一个现有的命名提取别名以使用不同的名称。

基本上我正在使用的正则表达式的块看起来像这样:

(-|(?<objectname>.*\\(?<process>[^\r\n\\]+))

这最多匹配日志的一部分,其中包含可执行文件的路径。

它将我需要的内容提取到对象名中,而可执行文件名减去进入进程的路径。

如果我objectname查找objectID. 我不是在为具有相同名称的多个组寻找 /j 运算符。

标签: regexperlpcre

解决方案


只需将命名捕获包装在另一个命名捕获组中:

(-|(?<objectID>(?<objectname>.*\\(?<process>[^\r\n\\]+)))

推荐阅读