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.
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 : ;
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.
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 :;