首页 > 解决方案 > 获得第二组的一部分

问题描述

我在使用正则表达式时遇到了一些困难。

这是我正在执行正则表达式的字符串示例:

This is some useless information (first;second;third;fourth;fifth;sixth) (seventh;eigth;ninth;tenth)

我正在寻找一个正则表达式,它允许我只选择括号中的一个单词,比如“第九个”。我需要选择的词取决于我在程序中的位置,所以一旦我知道如何编写它,我就会调整正则表达式

目前我发现的最好的是:(?<=\()([^]]+?)(?=\)).*? 这使我可以匹配括号之间的组的全部内容。

有人能帮助我吗?

标签: regex

解决方案


如果需要在给定变量
输入参数的情况下匹配括号之间的内容,可以这样做:

(?<=\()(?:(?![()]).)*?(?<=[(;])(ninth)(?=[);])(?:(?![()]).)*(?=\))

它是通过连接三个部分来动态构建的。

(?<=\()(?:(?![()]).)*?(?<=[(;])(+变量+)(?=[);])(?:(?![()]).)*(?=\))

https://regex101.com/r/6yxQyp/1

如果需要,变量在第 1 组中被捕获。


推荐阅读