1

我有一些代码字符串需要从中提取一些数据,但其中是特定的数据。

字符串始终采用相同的格式。

  1. 我需要在 ( 和 ) 之间的开头提取文本,所以它会List Options在这里提取。
  2. 我需要在@groups这里提取接近结尾的文本。

我最后需要的字符串总是以@

(List Options((join ", ", @groups))

我努力了:

^\((\w+).*, (@\w+)\)\)$

但它只给了我这个词List

4

2 回答 2

2

这应该适合你。

^\(([^(]+)[^@]+([^)]+)\)+$

查看工作演示

正则表达式:

^          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
于 2013-09-26T01:02:04.170 回答
1

试试这个

^\(([^\(]+?)\(.*?@([^\)]+?)\)

或者如果您还需要捕获 @ 符号,只需将其移动到第二个捕获组内

^\(([^\(]+?)\(.*?(@[^\)]+?)\)
于 2013-09-26T01:02:50.950 回答