我试图使一个正则表达式提取任何字(字母数字)之间的花括号,如下面的例子:
{{name}}您好,您的全名是{{连续名字****姓氏}}
条件为:
1.如果里面的内容只包含一个连续的alpha_numeric,这意味着它是一个变量,应该被提取。
1.如果里面的内容包含多个由空格分隔的alpha_numeric,这意味着第一个出现的是函数名,应该被忽略,但是应该提取其余的参数(函数参数)。
1.每个函数参数用空格分隔。
1.每个变量名可以包含多个单词,但变量名中的每个单词应使用分隔符连接,例如:名字
1.函数参数可以有一个或多个参数,并且每个参数都应该匹配。
因此,第一个示例的结果应为:
姓名、名字、姓氏。
这就是我所尝试的:\{\s*\{\s*([^\}\/\s]+)\s*\}\s*\}
但它只涵盖了第一种情况。
再举一个例子:
"Key": "price_change_manager.msg2 {{ message }}"
value": "{{ username }} plan to {{formatCurrence new_price currency old_price }}"
应符合:消息、用户名、新价格、货币、旧价格。
1条答案
按热度按时间uurv41yg1#
一个不是特别复杂的带有一些if的正则表达式确实可以工作,例如:
这将产生如下所示的切片:
所以你可以这样处理它: