Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 如何替换“1”之外字符串的子字符串&引用;_Javascript_Regex - Fatal编程技术网

Javascript 如何替换“1”之外字符串的子字符串&引用;

Javascript 如何替换“1”之外字符串的子字符串&引用;,javascript,regex,Javascript,Regex,我有一个字符串,比如: 'a, b, "c,d" e, f,' 我想使用逗号字符作为分隔符拆分字符串,但不在括号内。我的结果对象集应包含以下元素: a b "c,d" e f 我怎样才能做到这一点 s = 'a, b, "c,d" e, f,'; console.log(s.match(/("[^"]+"|[^,])+/g)); 产生['a','b','c,d'e','f'],其中有额外的空格,但您可以修剪它们 编辑:错过了e。。。现在修好了 说明: (A | B)+更喜欢A(它是一个带

我有一个字符串,比如:

'a, b, "c,d" e, f,'
我想使用逗号字符作为分隔符拆分字符串,但不在括号内。我的结果对象集应包含以下元素:

a
b
"c,d" e
f
我怎样才能做到这一点

s = 'a, b, "c,d" e, f,';
console.log(s.match(/("[^"]+"|[^,])+/g));
产生
['a','b','c,d'e','f']
,其中有额外的空格,但您可以修剪它们

编辑:错过了
e
。。。现在修好了

说明:

  • (A | B)+
    更喜欢
    A
    (它是一个带引号的字符串)而不是B,后者是字符串中不带引号的部分。它匹配
    “c,d”
    ,然后因为
    +
    它继续匹配
    e
  • “[^”]+”
    匹配一个
    ,后跟所有非
    ,后跟一个
  • [^,]
    匹配任何非
  • /regex/g
    使全局(匹配所有匹配项,而不仅仅是第一个)
产生
['a','b','c,d'e','f']
,其中有额外的空格,但您可以修剪它们

编辑:错过了
e
…现在已修复

说明:

  • (A | B)+
    更喜欢
    A
    (它是一个带引号的字符串)而不是B,后者是字符串的非带引号的部分。它匹配
    “c,d”
    ,然后因为
    +
    它继续匹配
    e
  • “[^”]+”
    匹配一个
    ,后跟所有非
    ,后跟一个
  • [^,]
    匹配任何非
  • /regex/g
    使全局(匹配所有匹配项,而不仅仅是第一个)

+1,因为它有效,我也接受这个答案,非常感谢。但是,你能解释一下这个正则表达式吗?再次感谢你。@LajosArpad,我补充了一个解释。。。希望对你有帮助。因为它有效,我也接受这个答案,非常感谢。但是,你能解释一下这个正则表达式吗?再次感谢你。@LajosArpad,我补充了一个解释。。。希望能有帮助。