recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Que signifie cette expression régulière /(?:([^:;\(\[]*):)?(.*)/

/(?:([^:;\(\[]*):)?(.*)/

Pouvez-vous l'expliquer en détail ?

我想大声告诉你我想大声告诉你2820 Il y a quelques jours606

répondre à tous(2)je répondrai

  • PHP中文网

    PHP中文网2017-05-19 10:47:02

    Première partie : (?:XXXXX :)?
    Deuxième partie : (.*)

    La première partie ne correspond pas à un ou zéro XXXXX :, XXXXX correspond à zéro ou plusieurs d'entre eux :;([Tous les caractères autres que le symbole capturé par le premier groupe de capture.

    La deuxième partie consiste à capturer zéro ou plusieurs caractères arbitraires.

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:47:02

    Comme expliqué au premier étage, il y a deux groupes de capture. Le contenu des parenthèses dans le premier groupe de capture est après ([^:;([]*)指匹配不包含:;([字符的任意个字符,加上前面的 ?:表示只匹配括号里面的内容但是不捕获,最后是匹配一个:,
    (?:([^:;([]*):)?, 匹配一个不包含:;([这四个符号的字符串再加一个:零次或一次;
    第二个捕获组就是捕获任意字符串,就是说如果第一个捕获组匹配失败,那么第二个捕获组会获取整个字符串,
    如果第一个捕获组成功,结果是捕获两个字符串,一个是:之前的,一个是:Exemple :
     ;

    var re = /(?:([^:;\(\[]*):)?(.*)/;
    re.exec('abc:123');
    ==>  ["abc:123", "abc", "123", index: 0, input: "abc:123"]
    re.exec('(abc:123');
    ==>  ["(abc:123", undefined, "(abc:123", index: 0, input: "(abc:123"]

    répondre
    0
  • Annulerrépondre