【问题标题】:Multiple names for the same perl named regex extraction同一个 perl 命名正则表达式提取的多个名称
【发布时间】:2020-01-12 14:58:06
【问题描述】:

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

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

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

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

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

如果我查找 objectID,我还需要返回别名 objectname。我不是在为具有相同名称的多个组寻找 /j 运算符。

【问题讨论】:

  • 你为什么要在同一组结构周围使用 2 个捕获组?真是个坏主意。如果您在两个名字之间纠结,请发挥创意。 IdName
  • @sln,原因是这个其实是用在对数里面的。我需要保留对公司编写的规则起作用的原始感觉,但同时由于产品限制,我需要我的别名来为自定义开发的规则工作。

标签: regex perl pcre


【解决方案1】:

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

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

【讨论】:

  • 谢谢!我知道有一种简单的方法可以做到这一点!
猜你喜欢
  • 2018-07-20
  • 2014-04-03
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 2021-09-08
  • 2021-06-23
  • 2015-07-08
  • 1970-01-01
相关资源
最近更新 更多