我有一些代码字符串,我需要从中提取一些数据,但具体数据。
字符串的格式始终相同。
List Options
。@groups
附近的文字。 我最后需要的字符串始终以@
(List Options((join ", ", @groups))
我试过了:
^\((\w+).*, (@\w+)\)\)$
但它只给了我List
答案 0 :(得分:2)
这应该适合你。
^\(([^(]+)[^@]+([^)]+)\)+$
请参阅working demo
正则表达式:
^ the beginning of the string
\( look and match '('
( group and capture to \1:
[^(]+ any character except: '(' (1 or more times)
) end of \1
[^@]+ any character except: '@' (1 or more times)
( group and capture to \2:
[^)]+ any character except: ')' (1 or more times)
) end of \2
\)+ ')' (1 or more times)
$ before an optional \n, and the end of the string
答案 1 :(得分:1)
尝试这个
^\(([^\(]+?)\(.*?@([^\)]+?)\)
或者如果您还需要捕获@符号,只需将其移到第二个捕获组
中^\(([^\(]+?)\(.*?(@[^\)]+?)\)