繁体   English   中英

如何在两个其他字符串之间获取多个字符串

[英]How to get multiple strings between two other strings

我试图找到{{}}之间以$开头的所有值,后跟[\\w.]+但不以数字开头。 这适用于获取值,但是,它只获取最后一项。 我正在寻找的是这些项目的列表,因此在此示例中,我希望我的数组包含(基于示例):

['{{I\'m $name and I am $age years old}}', '$name', '$age']

执行时, $name不包含在此数组中,如下所示:

 let result = '$welcome: {{I\\'m $name and I am $age years old}}'.match(/\\{\\{.*(\\$(?!\\d|\\.)[\\w.]+).*\\}\\}/) console.log(result)

你可以试试下面的正则表达式:

\$[.\w]+(?=[^{}]*})

现场演示

这在{{}}之间并不真正匹配,但它保证它不会找到大括号之外的匹配项。 它假设输入字符串中不会出现单个不平衡的大括号。

另一种方法是匹配整个{{...}}块然后查找\\$[\\w.]+但如果您需要在原始输入字符串中替换它们,这将不是一个简单的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM