J'ai une expression de regex qui traverse une chaîne et tire 40 valeurs, il semble trier si comme la requête ci-dessous, mais beaucoup plus grande et plus compliquée ma question est comment Utilisez ces expressions avec la commande Remplacer lorsque le numéro dépasse 9. Il semble que lorsque j'utilise lorsque j'utilise Toute aide serait très appréciée merci :) P> J'utilise aussi uestudio, mais si un programme différent le fait mieux alors pas de biggie: ) p> p> \ 10 code> il renvoie la valeur pour \ 1 code>, puis ajoute un 0 code> à la fin. P>
5 Réponses :
Votre meilleur pari, je pense, est d'écrire quelque chose de rapide dans une langue rapide avec un analyseur de regex décent. mais cela ne répondrait pas à la question comme demandé forte> p> voici quelque chose en python: p> Notez que Python permet à Python permet à Python Comme EDIT:
La plupart des saveurs de regex et des éditeurs qui incluent un moteur de regex devraient suivre la syntaxe remplacée comme suit: p> La plupart des moteurs de regex simples utilisés par les éditeurs ne sont pas équipés pour gérer plus de 10 groupes correspondants; s> il ne semble pas comme ultradedit. Je viens d'essayer Notepad ++ et ce n'est même pas match em> une regex avec 10 groupes. \ 20 code>: Pour avoir une brouillon au groupe 2 suivi d'un 0 littéral 0, vous devez utiliser \ g 0 code>, qui est sans ambiguïté. p> abcdefghijklmnop
search: (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(?<name>.)(.)
note: 1 2 3 4 5 6 7 8 9 10 11 12 13
value: a b c d e f g h i j k l m
replace result:
\11 k1 i.e.: match 1, then the character "1"
${12} l most should support this
${name} l few support named references, but use them where you can.
"Certaines personnes, lorsqu'elles sont confrontées à un problème, pensent" que je sais, je vais utiliser des expressions régulières. "Maintenant, ils ont deux problèmes." - Jamie Zawinski La citation ci-dessus n'a jamais semblé si vraie :( merci pour l'aide :)
Si vous ne pouvez pas gérer plus de 9 sous-groupes, pourquoi ne pas correspondre initialement à des groupes de 9, puis de boucle et d'appliquer des expressions à ces matchs? P>
I.e. Premier match (
Malheureusement, dans mon cas qui ne fonctionnerait pas, le modèle est assez grand. Cependant, j'apprécie la suggestion. Merci :)
Comme indiqué par Psycho BRM : Utilisez 10 $ au lieu de \ 10 J'utilise Notepad ++ et ça marche Beautifull. P>
Travaille sur sublime. Éventuellement sur d'autres. Est-ce que quelqu'un sait quelle standard cette notation $ fait partie de?
essayez d'utiliser des groupes nommés; Donc, au lieu du dixième: Utilisez: p> puis utilisez la chaîne de remplacement suivante: p> (c'est bien sûr en l'absence d'une meilleure solution à l'aide de bouclures et rappelez-vous qu'il pourrait y avoir différentes flavors de syntaxe de regex en fonction de votre environnement.) p> p>
Cela a fonctionné pour moi lors de l'utilisation de REGEX à Nginx, qui ne semble pas aimer plus de 9 groupes. Même numéro, l'OP a l'endroit où 10 $ est interprété comme $ 1 + 0.
Mettez un $ en face du sous-groupe à double chiffre: par exemple \ 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 \ 9 $ 10 Cela a fonctionné pour moi. p>
Wow, merci pour la pointe. Cela fonctionne très bien dans le Bloc-notes ++ :)
Dans le texte sublime, "\ 10" ne fonctionne pas non plus, mais "10 $" fonctionne.