Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将字符串与regexp匹配以获取'=';?_Javascript_Regex - Fatal编程技术网

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)。