erl*_*rli 2 javascript regex node.js
我有一个 URL 字符串:
var url = https://url.com/{{query}}/foo/{{query2}}
我有一行代码可以接收一个字符串,然后获取大括号内所有查询的数组:
var queries = String(url).match(/[^{\}]+(?=})/g);
返回:
queries = ['query', 'query2']
我有一个函数,parse(queries),它处理这些查询并返回它们的结果列表:
results = ['resultOfQuery', 'resultOfQuery2']
我希望能够获取此列表,然后将 URL 字符串中的查询替换为其结果。这个例子的最终结果是:
url = https://url.com/resultOfQuery/foo/resultOfQuery2
我有两个不同的问题:
String.match代码行中的正则表达式仅对一组大括号{something}. 如何修改它以查找一组双花括号 {{something}}?
我已经有了结果的数组。进行字符串替换的最佳方法是什么,以便将查询及其随附的每组双括号替换为其相应的结果?
您可以使用以下模式替换,
{{(.+?)}}
Run Code Online (Sandbox Code Playgroud)
{{ - 火柴 {{(.+?) - 匹配除换行符以外的任何内容一次或多次{{(.+?)}}
Run Code Online (Sandbox Code Playgroud)
注意:- 我在这里使用结果作为对象,因此查找和替换值变得很容易,如果您可以更改解析函数,请考虑从解析返回一个对象