Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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 js正则表达式捕获第一个逗号前的最后一个单词_Javascript_Regex - Fatal编程技术网

Javascript js正则表达式捕获第一个逗号前的最后一个单词

Javascript js正则表达式捕获第一个逗号前的最后一个单词,javascript,regex,Javascript,Regex,我有以下字符串 const str = "bbb=12m3 3be3 34f4, foo=2344 234234 dqda, baz=asdasd asdasd" const match = str.match(Need the correct regex here); console.log(match[match.length-1]); 我想提取第一个逗号前的最后一个单词。在上面的例子中,它将是34f4 我尝试了/bbb=(.*),/这给了我12立方米的体重 我尝试了/bbb=(.+\s(

我有以下字符串

const str = "bbb=12m3 3be3 34f4, foo=2344 234234 dqda, baz=asdasd asdasd"
const match = str.match(Need the correct regex here);
console.log(match[match.length-1]);
我想提取第一个逗号前的最后一个单词。在上面的例子中,它将是34f4

我尝试了
/bbb=(.*),/
这给了我12立方米的体重

我尝试了
/bbb=(.+\s(.*),/
,这给了我dqda

我觉得我有点接近了,但不能完全理解

编辑-我需要特别查找字符串“bbb”,因为可能会测试其他没有它的字符串,或者bbb在字符串中的顺序可能不同

我可能会受伤

const str = "zzz=12m3 3be3 34f4, foo=2344 234234 dqda, baz=asdasd asdasd"
什么也不回

否则我可能会

const str = "foo=2344 234234 dqda, bbb=12m3 3be3 34f4, baz=asdasd asdasd"
如果bbb位于不同的位置

您可以呼叫一次,仅获取第一个匹配项:

console.log(/([^\s,]+),/.exec(“bbb=12m3 3be3 34f4,foo=2344 234234 dqda,baz=asdasd asdasd”)
您可以使用

/bbb=[^,]*\s([^,\s]*)/

详细信息

  • bbb=
    -a
    bbb=
    子字符串
  • [^,]*
    -0个或更多字符,而不是
  • \s
    -空白
  • ([^,\s]*)
    -第1组:除逗号和空格外的零个或多个字符
JS演示:

var strs=['bbb=12m3 3be3 34f4,foo=2344 234 dqda,baz=asdasd asdasd','zzz=12m3 3be3 34f4,foo=2344 234 dqda,baz=asdasd asdasd','foo=2344 234 dqda,bbb=12m3 3be3 34f4,baz=asdasd asdasd'];
var regex=/bbb=[^,]*\s([^,\s]*)/;

for(var i=0;i看起来不错,但我需要bbb部分。我编辑了OP,以说明您可以始终有第二个正则表达式,只测试字符串是否以该序列开头。例如,
/^bbb=/.test(str)和&/../.exec(str)
。这里看起来很棒,但似乎在我这边呕吐,指向?[1]中的点表示需要一个操作数,但找到了。@ekjcfn3902039它被调用,并可以用许多其他方式表示。您的浏览器是什么?它不在浏览器中,而是在一个名为Vert的服务器中。x@ekjcfn3902039修改后的代码与ES5兼容,以防您需要在IE中运行。我在您发送给我的链接中看到不支持NodeJs,因此Vert.x可能是sameI已经调整通过了您上面提到的所有测试用例。它现在是否按照预期工作?