En Perl, nous pouvons le faireComment implémenter/e modificateur avec PCRE2?
s/pattern/func($1)/e
Y at-il fonction pratique qui fait la même chose avec PCRE2, comme
::pcre2_substitute_with_callback(
re, // the compiled pattern
pcuSubject, ccuSubject, // the subject and its length
PCRE2_SUBSTITUTE_GLOBAL, // the substitute options
matches,
NULL, // the match context
[](PCRE2_SPTR pcuMatched)->PCRE2_SPTR{ // the callback
return "replacement";
},
pcuResult, &ccuResult
);
Merci.
Je pense que la réponse rapide est "Non, il n'y a pas de fonction aussi pratique dans PCRE2". Je viens de vérifier comment JPCRE2 implémente son jp :: RegexReplace :: nreplace(), et il utilise pcre2_match(), ce qui implique probablement "Les gars, vous devez le faire vous-même de la manière la plus difficile." Merci de m'avoir parlé de JPCRE2. Bonne journée. – Cody
@Cody Vous avez raison, j'ai eu besoin de mettre une déclaration claire à l'avance. Je vous remercie. – zdim
@Cody: "vous devez le faire vous-même de manière difficile", je ne suis pas sûr de comprendre ce que vous essayez de dire, mais c'est comme ça: la méthode 'nreplace' prend une fonction qui retourne une chaîne où' $ 'n'a rien de spécial (littéral). Bien que vous puissiez facilement implémenter son comportement, par exemple au lieu de renvoyer '" a $ 0b "' depuis le rappel, vous pouvez retourner '" a "+ m [0] +" b "' et ainsi de suite. Et pour la fonctionnalité étendue de 'pcre2_substitute', vous pouvez utiliser' if..else' qui sera probablement plus lisible. – Jahid