=REGEXREPLACE("string", "(ng)", UPPER("$1"))
Ce qui précède renvoie "chaîne", mais doit renvoyer "striNG".
Je suppose que cela est dû au fait que UPPER
met la chaîne "$ 1" en majuscule plutôt que la chaîne contenant le groupe capturé.
Comment puis-je faire en sorte que REGEXREPLACE
affiche le résultat attendu?
Vous pouvez essayer de scinder cela en deux parties, en retournant la dernière en haut. Pas sûr de savoir comment imbriquer la partie supérieure à l'intérieur de la regex dans Gsheets.
=REGEXEXTRACT(A1,"stri") & upper(REGEXEXTRACT(A1, "(ng)"))
cela est revenu pour moi:
chaîne> striNG
cela dépendra beaucoup des données réelles, mais cela fonctionne aussi pour string
=REGEXREPLACE("stri"&UPPER("ng"); "(ng)"; "$1")
=REGEXREPLACE("string";"(n)";"")&
UPPER(REGEXREPLACE("string";"([a-z]{4})";"")
=LEFT(REGEXREPLACE("string";"(w)";"$1");4)&
UPPER(RIGHT(REGEXREPLACE("string";"(w)";"$1");2))
tous les retours: striNG
ceci remplacera ng
par NG
dans le mot string
ou tout autre mot consistant en ng
=REGEXEXTRACT(REGEXREPLACE("string"; "(ng)"; "NG"); "[a-zA-Z]{1,}")
cette formule fera la même chose, mais elle utilise UPPER()
pour le faire:
=REGEXEXTRACT(REGEXREPLACE("string"; "(ng)"; UPPER("ng")); "[a-zA-Z]{1,}")
cette formule offre un peu plus de flexibilité en utilisant RIGHT()
et en spécifiant les caractères majuscules:
=REGEXEXTRACT(REGEXREPLACE("string"; "(ng)"; RIGHT(UPPER("string"); 2)); "[a-zA-Z]{1,}")
et cette formule finale est capable de prendre n'importe quel mot et elle est également entièrement ajustable en spécifiant combien de caractères du côté droit à la fin du mot doivent être CAPS
ed:
=REGEXEXTRACT(REGEXREPLACE("string";
RIGHT("string"; 2);
RIGHT(UPPER("string"); 2)); "[a-zA-Z]{1,}")