例如,在字符串
中'apple %cherry% carrots %berries2%'
我想提取以下内容:
[
'cherry',
'berries2'
]
我尝试使用以下RegEx,但它们都包含%符号:
/%[a-zA-Z\d]+%/g
我根据我在此处找到的内容制作了此RegEx:Regex to match string between %
如果有所不同,这就是我提取字符串的方式:http://jsfiddle.net/pixy011/APab8/
答案 0 :(得分:4)
试试这个正则表达式:
/[a-zA-Z\d]+(?=%)/g
(?= ... )
是一个积极的前瞻,这基本上意味着它会检查以确保内容在字符串中,而不是实际捕获它们。
由于%
与%
不匹配,因此不需要第一个[a-zA-Z\d]
。
试运行:
var matches = 'apple %cherry% carrots %berries2%'.match(/[a-zA-Z\d]+(?=%)/g);
console.log(matches); // => ["cherry", "berries2"]
答案 1 :(得分:3)
这应该有效:
var re = /%([^%]*)%/g,
matches = [],
input = 'apple %cherry% carrots %berries2%';
while (match = re.exec(input)) matches.push(match[1]);
console.log(matches);
["cherry", "berries2"]