我知道有大量的帖子和教程的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
3条答案
按热度按时间klr1opcd1#
你可以用这个正则表达式得到直到右括号的完整字符串:
(\w+\s+in\s+\(.*?\))
ghhaqwfi2#
这是一个有点肮脏的黑客,但我测试了
(\w+\s+in \([^)]\)+\))
将工作。我捕获了所有不是右括号的符号,然后添加右括号符号本身。djmepvbi3#
捕获组不需要仅用于匹配,可以使用求反字符类匹配除
(
和)
之外的任何字符参见regex101 demo。