我已经被这个正则表达式问题困扰了很长时间了。 我有以下字符串。
[{"op": "replace", "path": "/endDate", "value": "#{$PurchaseOrderExtensions.findOne(_extid).getEndDate().toString()}"}]
我完全不知道如何提取圆括号内的单词_extid
。令人困惑的部分是有许多圆括号。我需要在findOne
出现之后仅提取一个。
我尝试了以下正则表达式,但它们都没有匹配字符串以在findOne
之后提取一个。
/\{(\(\w+\))\}/?
/\\((\\w+)\\)/?
and many more...
我在这做什么错?
答案 0 :(得分:1)
您可以在正则表达式中找到 findOne :
findOne\((\w+)\)
然后你可以从内部捕获组获取你的字符串。
答案 1 :(得分:1)
'(?<=findOne)\(.*?\)'
示例
grep -Po '(?<=findOne)\(.*?\)' file
或
grep -Po 'findOne\K\(.*?\)' file
答案 2 :(得分:0)
为什么您只是在表达中加入findOne
?
像:
/\.findOne\((.*?)\)/
取决于语言和用法,您可能需要加倍反斜杠,或者如上所述 - 只需使用JSON解析器
答案 3 :(得分:0)
你能用这样的东西捕捉圆括号内的内容:
\([a-z1-9_]*\)