Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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/2/jquery/71.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模式/(?:^::,)(?:\s*\[)&x2B;/g是什么意思?_Javascript_Jquery_Regex - Fatal编程技术网

在Javascript中,这个RegExp模式/(?:^::,)(?:\s*\[)&x2B;/g是什么意思?

在Javascript中,这个RegExp模式/(?:^::,)(?:\s*\[)&x2B;/g是什么意思?,javascript,jquery,regex,Javascript,Jquery,Regex,在Jquery中有一个regexp模式定义 var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g; 此模式匹配字符串,如“abc,[”和“abc:[”,但不匹配“abc^[”。 那么模式中这部分的含义是什么: (?:^ |:|,) ()表示捕获组 ?:如果你把它放在一个组的前面,它将不会被捕获,因此捕获组将变成一组字符 ^ |:|,表示它匹配行的开头(^),或:或,。是这些标记之间的分隔符 ()表示捕获组 ?:如果你把它放在一个组的前面,它将不会被捕获,因此捕

在Jquery中有一个regexp模式定义

var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g;
此模式匹配字符串,如“abc,[”和“abc:[”,但不匹配“abc^[”。 那么模式中这部分的含义是什么:

(?:^ |:|,)

  • ()
    表示捕获组
  • ?:
    如果你把它放在一个组的前面,它将不会被捕获,因此捕获组将变成一组字符
  • ^ |:|,
    表示它匹配行的开头(
    ^
    ),或
    是这些标记之间的分隔符
      • ()
        表示捕获组
      • ?:
        如果你把它放在一个组的前面,它将不会被捕获,因此捕获组将变成一组字符
      • ^ |:|,
        表示它匹配行的开头(
        ^
        ),或
        是这些标记之间的分隔符
      (?:…)
      是一个不捕获任何内容的组(如
      (…)

      因此,您的示例
      (?:^ |::|,)
      只匹配文本的开头、冒号或逗号

      此模式匹配字符串,如“abc,[”和“abc:[”,但不匹配“abc^[”

      听起来你好像不知道
      ^
      是什么意思-在正则表达式中,它表示“字符串的开头”(除非你打开了多行模式,它表示“行的开头”)。

      (?:…)
      是一个不捕获任何内容的组(如
      (…)

      因此,您的示例
      (?:^ |::|,)
      只匹配文本的开头、冒号或逗号

      此模式匹配字符串,如“abc,[”和“abc:[”,但不匹配“abc^[”

      听起来你好像不知道
      ^
      是什么意思——在正则表达式中,它意味着“字符串的开头”(除非你打开了多行模式,在那里它意味着“行的开头”)。

      (?:^::)
      表示匹配^or:or.。通常这也会捕获这些字符,因为括号中有?:修饰符,所以它们不会被捕获

      更新:哇,没错。^匹配此上下文中字符串的开头,而不是符号本身。

      (?:^ |:|,)
      表示匹配^or:或。。通常这也会捕获这些字符,因为括号中有?:修饰符,它们不会被捕获


      更新:哎哟,没错。^匹配此上下文中字符串的开头,而不是符号本身。

      我明白了。我知道^表示字符串或行的开头,但我不知道它是否可以与|结合使用。@dencey:它表示正则表达式中任何位置的字符串开头,除非它位于字符类
      […]
      :)@Porges,因为如果
      ^
      是字符类中的第一个字符,则表示不是,如果它不是第一个字符,则表示正常的
      ^
      ,我知道。我知道^表示字符串或行的开头,但我不知道它可以与|结合使用。@dencey:它表示正则表达式中任何位置的字符串开头,除非我t在字符类中
      […]
      :)@Porges因为如果
      ^
      是字符类中的第一个字符,则表示不是,如果不是第一个字符,则表示正常
      ^
      错误,
      ^
      表示“输入开始”(至少在
      g
      模式下)错误,
      ^
      表示“输入开始”(至少在
      g
      模式下)