我有一些代码字符串需要从中提取一些数据,但其中是特定的数据。
字符串始终采用相同的格式。
- 我需要在 ( 和 ) 之间的开头提取文本,所以它会
List Options
在这里提取。 - 我需要在
@groups
这里提取接近结尾的文本。
我最后需要的字符串总是以@
(List Options((join ", ", @groups))
我努力了:
^\((\w+).*, (@\w+)\)\)$
但它只给了我这个词List
这应该适合你。
^\(([^(]+)[^@]+([^)]+)\)+$
查看工作演示
正则表达式:
^ 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
试试这个
^\(([^\(]+?)\(.*?@([^\)]+?)\)
或者如果您还需要捕获 @ 符号,只需将其移动到第二个捕获组内
^\(([^\(]+?)\(.*?(@[^\)]+?)\)