Ne peut pas obtenir pourquoi cette regex (regex101)groupe capture répétée PCRE
/[\|]?([a-z0-9A-Z]+)(?:[\(]?[,][\)]?)?[\|]?/g
capture toutes les entrées, alors que ce (regex101)
/[\|]+([a-z0-9A-Z]+)(?:[\(]?[,][\)]?)?[\|]?/g
capture seulement |Func
Chaîne d'entrée est |Func(param1, param2, param32, param54, param293, par13am, param)|
Comment puis-je faire correspondre le groupe de capture répétée de manière normale? Par exemple. J'ai regex
/\(\(\s*([a-z\_]+){1}(?:\s+\,\s+(\d+)*)*\s*\)\)/gui
et chaîne d'entrée est ((string , 1 , 2))
. Regex101 dit "un groupe de capture répété capturera seulement la dernière itération Mettez un groupe capturant autour du groupe répété pour capturer toutes les itérations ...". J'ai essayé de suivre ce conseil, mais cela ne m'a pas aidé.
Voir ['\ | + ([a-z0-9A-Z] +) (?: \ (? (\ W + (?: \ S *, \ s * \ w +) *) \)?)? \ |? '] (https://regex101.com/r/ypZGcv/3). Vous ne pouvez pas capturer toutes les captures répétées avec PCRE, vous pouvez les faire correspondre en utilisant une regex '\ G'. Voir ['(?: \ G (?! \ A) \ s *, \ s * | \ | + ([a-z0-9A-Z] +) \() \ K \ w +'] (https://regex101.com/r/ypZGcv/4) –
Je ne savais pas que je ne pouvais pas tout capturer en un seul appel avec PCRE Maintenant, je comprends, c'est pourquoi regex101 me demandait de capturer le groupe répétitif pour l'intégrer Merci beaucoup pour votre aide! – user2890234