Javascript 将字符串与regexp匹配以获取'=';?
示例字符串是Javascript 将字符串与regexp匹配以获取'=';?,javascript,regex,Javascript,Regex,示例字符串是=aa=bb=cc=dd= 我试过了 string.match(/=(\w*)=/) 但它只返回aa 如何从示例字符串中找到aa、bb、cc和dd?此正则表达式将明确匹配您的要求,并将非分隔符部分放在第一个捕获组中: =([^=]+)(?==) 不幸的是,JavaScript正则表达式没有look behinds,否则这可以用更简单的方式实现 下面是一些代码: var str = '=([^=]+)(?==)'; var re = /=([^=]+)(?==)/g, a
=aa=bb=cc=dd=
我试过了
string.match(/=(\w*)=/)
但它只返回aa
如何从示例字符串中找到
aa
、bb
、cc
和dd
?此正则表达式将明确匹配您的要求,并将非分隔符部分放在第一个捕获组中:
=([^=]+)(?==)
不幸的是,JavaScript正则表达式没有look behinds,否则这可以用更简单的方式实现
下面是一些代码:
var str = '=([^=]+)(?==)';
var re = /=([^=]+)(?==)/g,
ary = [],
match;
while (match = re.exec(str)) {
ary.push(match[1]);
}
console.log(ary);
描述
此正则表达式将捕获字符串中所有不相等的字符
=([^=]*)(?==)
例子
实例:
示例文本
=aa=bb=cc=dd=
匹配
捕获组1将具有以下内容
[0] => aa
[1] => bb
[2] => cc
[3] => dd
var values=yourString.split('=')代码>您将得到一个包含所有所需值的数组。只需简单使用:
string.split('=')
我相信/[^=]+/g
应该适合你的需要: 请注意,您也可以简单地拆分字符串:)@WoLpH,如何拆分字符串而不在每个项中添加一个=或在数组开始或结束时添加一个空项?@DanielGimenez-可以,但在处理数组时您可以很容易地跳过空白值。为什么这会被否决?这是正确的正则表达式。虽然现在的答案与我给出的答案几乎相同…@DanielGimenez我没有投票否决它,但我认为事实是,如果没有循环,正则表达式将无法正常工作(后来添加了循环,之后一次投票被逆转).人们在玩游戏,通过向下投票人为地夸大他们的答案others@Denomales:你忘了全球国旗(我也被否决了)。@Denomeans-你仍然错过了。您的示例使用的是ruby,而不是javascript。如果没有全局标志,这个答案在javascript中是不起作用的。强烈建议删除一个答案以摆脱否决票,然后重新发布一个正确的答案。看,因为我的答案需要稍微修正一下,现在它是正确的。我认为正确的答案不应该有反对票:)所以我犯了一个小错误,其他人开始反对,并在评论中嘲笑我,而不是帮助我纠正它。我想说的是一个非常善良的社会:)一点玩笑——这不是个人的。但是,请考虑一下,这个网站的目的不是握着你的手,而是为世界其他地方提供高质量的答案。发布错误或误导性的答案对该任务来说是一种诅咒,并将得到相应的回应——否决票和指出错误的评论。你已经纠正了错误,并提供了一个体面的答案,这比大多数新来者都要多+1。捕获组的作用是什么?没有它,它也可以正常工作。你能在重要的地方贴一个字符串吗?@learner,不要向前看,然后在=a=b=nomatch,=c=
中匹配nomatch
。只是尽量做到准确。@learner Daniel的意思是,(?=…)
是一种前瞻。它检查紧随其后的字符是否是…
中的字符,而不使用它,这样您就不会得到其他结果(即aa、cc和缺少bb、dd)。