我有一个包含一些嵌入变量的字符串,我需要提取这些变量的名称。我不精通正则表达式,我无法让它工作。
这是字符串外观的示例:
Lorem ipsum dolor sit amet {% #varName1 %}, consectetur adipisicing #non_var elit, sed
{% #varName2|prop1 %} 做 eiusmod tempor incididunt ut labore et dolore magna aliqua
{% 标识符 #varName3|prop2 %}。Ut enim ad minim veniam。
变量名称带有前缀#
并放置在这些分隔符{%
和%}
. 使用这个表达式我可以匹配变量名:
(?<=#)(.*?)(?=[\s\|])
但是,这也匹配#non_var
不在分隔符内且不是有效变量的内容。
我也试过这个:
(?<={% )(#(.*?)[^\s\|])(?= %})
但这仅匹配#varName1
and #varName2|prop1
(我不需要该prop1
部分)。预期的结果是匹配:
varName1
,varName2
和varName3
.
任何建议将不胜感激。