regex 协助重复正则表达式

fhity93d  于 2023-02-20  发布在  其他
关注(0)|答案(3)|浏览(130)

我知道有大量的帖子和教程的Regex,但我坚持的东西,我认为将是相当简单的,可悲的是不适合我...
考虑下面的字符串:

DEMO1 in ( "test1", "test2", "test3"), CODE_ID in ( "test4", "test5", "test6")

我想将该行分成两组,一组用于“DEMO2 in”,另一组用于“CODE_ID in”。

Match 1 = DEMO1 in ( "test1", "test2", "test3")
Match 2 = CODE_ID in ( "test4", "test5", "test6")

这个正则表达式模式给了我'DEMO1 in'和'CODE_ID in'部分,问题是如何捕获字符串的其余部分直到结束括号?

(\w+\s+in\s)

我如何分割和捕捉结束括号后的逗号。也可以有更多的,然后只有两组,但现在只分割和捕捉两组将是非常有帮助的。
不知道这些的寿命,但这里是一个regex101的链接到我目前的工作,没有太多:https://regex101.com/r/ukwLZM/1

klr1opcd

klr1opcd1#

你可以用这个正则表达式得到直到右括号的完整字符串:(\w+\s+in\s+\(.*?\))

ghhaqwfi

ghhaqwfi2#

这是一个有点肮脏的黑客,但我测试了(\w+\s+in \([^)]\)+\))将工作。我捕获了所有不是右括号的符号,然后添加右括号符号本身。

djmepvbi

djmepvbi3#

捕获组不需要仅用于匹配,可以使用求反字符类匹配除()之外的任何字符

\w+\s+in\s+\([^()]*\)

参见regex101 demo

相关问题