Regex 正则表达式提取圆括号内的单词

Regex 正则表达式提取圆括号内的单词,regex,Regex,我已经被这个正则表达式问题困扰了很长时间了。 我有下面的字符串 [{"op": "replace", "path": "/endDate", "value": "#{$PurchaseOrderExtensions.findOne(_extid).getEndDate().toString()}"}] 我完全不知道如何提取圆括号内的单词\u extid。令人困惑的是有许多圆括号。我只需要在出现findOne之后提取一个 /\{(\(\w+\))\}/? /\\((\\w+)\\)/? and

我已经被这个正则表达式问题困扰了很长时间了。 我有下面的字符串

[{"op": "replace", "path": "/endDate", "value": "#{$PurchaseOrderExtensions.findOne(_extid).getEndDate().toString()}"}]
我完全不知道如何提取圆括号内的单词
\u extid
。令人困惑的是有许多圆括号。我只需要在出现
findOne
之后提取一个

/\{(\(\w+\))\}/?
/\\((\\w+)\\)/?
and many more...
我尝试了以下正则表达式,但没有一个正则表达式匹配字符串以提取
findOne
之后的正则表达式

/\{(\(\w+\))\}/?
/\\((\\w+)\\)/?
and many more...

我在这里犯了什么错误?

为什么不在表达式中包含
findOne

比如:

/\.findOne\(.*)/


根据语言和用途的不同,您可能需要将反斜杠加倍,或者如前所述-只需使用JSON解析器即可。您是否可以使用类似的方法捕获圆括号中的内容:

\([a-z1-9_]*\)
您可以在正则表达式中找到findOne:

findOne\((\w+)\)

然后您可以从内部捕获组获取字符串。

输入看起来像JSON,为什么不使用JSON解析器呢?“我在这里犯了什么错误?”您没有使用JSON解析器是一回事。字符串中包含代码这一事实是另一件坏事;可能是
eval
d以后或某种动态执行。您是说extid是数据,它可能会更改吗?你想进入findOne(这里有什么?@ash我知道如何使用JSON解析。但我使用的是Xtend,它不支持任何类似于我们在basicjava中使用的JSON解析。事实上,它不允许添加任何额外的javajar。我不认为“不使用JSON解析器”是一个错误。这是一种选择。另外,我在这个字符串中输入了这段代码,这是出于某种目的。
'(?<=findOne)\(.*?\)'
grep -Po 'findOne\K\(.*?\)' file