用直接访问替换函数调用的正则表达式
Regular expression for replacing function call with direct access
我想替换第一种格式的函数调用:
get(store, 'data.field1.field2', defaultVal) // there can be more fields on the second part
有了这个:
data?.field1?.field2 || defaultVal
在项目中使用正则表达式搜索替换或可能使用 sed 或其他工具。
我尝试了一些表达式,但无法弄清楚如何命名和拆分部分以进行替换。有什么想法吗?
我会使用 perl
:
perl -pe 's{get\(.*,\s*'"'"'(.+)'"'"',\s*(.+)\)}{join("?.", split(/\./,)) . " || " . }ge' file
get\(.*,\s*'(.+)',\s*(.+)\)
正则表达式(参见 regex demo)匹配 get(
,捕获最后两个参数,用点拆分第一个参数,用 ?.
将它们连接起来,然后在第二次捕获后附加 ||
。
我想替换第一种格式的函数调用:
get(store, 'data.field1.field2', defaultVal) // there can be more fields on the second part
有了这个:
data?.field1?.field2 || defaultVal
在项目中使用正则表达式搜索替换或可能使用 sed 或其他工具。
我尝试了一些表达式,但无法弄清楚如何命名和拆分部分以进行替换。有什么想法吗?
我会使用 perl
:
perl -pe 's{get\(.*,\s*'"'"'(.+)'"'"',\s*(.+)\)}{join("?.", split(/\./,)) . " || " . }ge' file
get\(.*,\s*'(.+)',\s*(.+)\)
正则表达式(参见 regex demo)匹配 get(
,捕获最后两个参数,用点拆分第一个参数,用 ?.
将它们连接起来,然后在第二次捕获后附加 ||
。