regex - 用于排除捕获组的正则表达式
问题描述
我已经尝试了几个小时来为此设计一个正则表达式,但一直没能做到。
这是我正在搜索的行。我只需要提取[Name] Action Detail
部分。
2019-05-14 11:28:08,257 [tomcat-http--12] INFO com.my.org.SomeClass - Usage Event: ,SomeField=null,SomeOtherField=Some value,Action=[Name] Action Detail,OtherField=null
这个正则表达式给了我几乎我需要的东西:Action=\[[^,]+
. 但是,我需要排除该Action=
部分。我正在考虑这样做,所以我需要使用嵌套子组?
解决方案
您可以简单地在 Action= 周围添加一个捕获组,它会这样做:
(Action=)\[[^,]+
您还可以使用围绕所需输出的另一个捕获组对其进行扩展,以简单地提取它:
(Action=)(\[[^,]+)
正则表达式
您可以在regex101.com中设计/修改/更改您的表达式。
正则表达式电路
您可以在jex.im中可视化您的表达式:
JavaScript 演示
const regex = /(Action=)(\[[^,]+)/gm;
const str = `2019-05-14 11:28:08,257 [tomcat-http--12] INFO com.my.org.SomeClass - Usage Event: ,SomeField=null,SomeOtherField=Some value,Action=[Name] Action Detail,OtherField=null`;
const subst = `$2`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
推荐阅读
- r - 在 R 中的特定范围之间重新缩放数据帧的多列
- c++ - 从 VTune 获取用户事件不适用于附加到进程
- amazon-web-services - CodePipeline 找不到图像定义文件
- c++ - 构造函数、析构函数、重载 =operator 函数、复制构造函数不会被继承。这究竟意味着什么?
- tcl - NS 2:跳过重复节点
- apache-spark - 使用正则表达式检查大于零的任何列的多个列
- reactjs - 如何在页面(路由)更改后完成请求之前显示加载指示器?
- oracle - 如何在 quarkus 数据源上指定当前模式?
- android - 如何在android房间加入查询中的内表中进行过滤
- r - 使用 ggplot2 创建均值分组条形图