我有一个字符串如下:
randomword,random${notavalue;randomword${iwantthisrandompart1}randomword${iwantthisrandompart2}randomword
如何在此示例中仅提取${}
内的值,即iwantthisrandompart1
和iwantthisrandompart2
。
答案 0 :(得分:2)
var s="randomword,random${notavalue;randomword${iwantthisrandompart1}randomword${iwantthisrandompart2}randomword"
var myRe=/\$\{([^}{]*)\}/g
var m=myRe.exec(s)
while (m!=null) {alert(m[1]);m=myRe.exec(s)}
试一试。你需要的部分将被警告"
答案 1 :(得分:-1)
这将解决您的烦恼
(?<=\$\{)[^\$\{]*(?=\})
正则表达式演示:http://regex101.com/r/oY0bU9
更新:因为javascript不支持lookbehind
(?=\$\{)\$\{([^\$\{]*(?=\}))