Notepad++ Expression Régulière ajouter des nombres
Comment puis-je somme ou d'ajouter une certaine valeur à tous ces chiffres? Par exemple, mon objectif est d'augmenter tous ces numéros à l'intérieur de la "" avec 100 mais la réalisation de ce qui a été problématique. Fondamentalement, il suffit en quelque sorte de somme le nombre actuel avec +100.
J'ai les lignes suivantes
<devio1="875" devio2="7779" devio3="5635" devio4="154"/>
<devio1="765" devio2="74779" devio3="31535" devio4="544"/>
<devio1="4335" devio2="13" devio3="55635" devio4="1565"/>
Par l'utilisation de cette expression régulière avec Notepad++
<devio1="([0-9]+)" devio2="([0-9]+)" devio3="([0-9]+)" devio4="([0-9]+)"/>
Je peux trouver tous les numéros à l'intérieur de la "" mais je ne peux pas trouver un moyen d'ajouter de +100 à tous. Cette tâche sera réalisée avec Notepad++ en utilisant des Expressions Régulières?
- Pas vraiment une réponse à votre question, seulement à votre problème: Vous pouvez envisager d'utiliser Perl.
- Les expressions régulières sont pour la manipulation de chaînes, ils ne sont vraiment pas adaptés pour faire des maths.
- Vous ne pouvez pas obtenir que l'aide seule expression régulière, vous aurez besoin d'un rappel. Vous pouvez soit écrire votre propre plugin pour notepad++ ou tout simplement utiliser votre langue préférée.
- ce serait une tâche très facile pour vim. si vous voulez le faire dans un éditeur de texte, choisir la bonne.
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas possible avec la seule utilisation des expressions régulières dans Notepad++. Malheureusement il n'y a aucun moyen d'effectuer des calculs dans le modèle de remplacement.
Donc la seule façon d'accomplir votre tâche dans Notepad++ est avec l'utilisation de la
Python Script
plugin.Python Script
plugin à partir de laPlugin Manager
ou de la site officiel.Ensuite, allez à
Plugins
>Python Script
>New Script
. Choisissez un nom pour votre nouveau fichier (par exemple add_numbers.py) et copiez le code qui suit:Exécuter
Plugins
>Python Script
>Scripts
>add_numbers.py
et votre texte sera transformé à:Je ne suis pas vraiment familier avec notepad++ mais pour un algorithme, en supposant que vous avez un certain nombre abcd = a*1000 +b*100 + c*10 + d, puis en tant que b est dans [0,8] vous pouvez juste remplacer b par b+1. Comme lorsque b = 9 alors vous avez besoin de remplacer b par 0 et les remplacer un par un+1 (et si a = 9 alors il faudrait remplacer par 10).
Notant cela, vous pouvez alors, pour trois et quatre chiffres, disons, d'appliquer la suivante regexes:
et ainsi de suite ... Noter que vous avez également à considérer tout a=9, b=9 entiers, et le plus grand des entiers, ce qui suggère une sorte de répétition avec si consolidés couvrant les cas où les coefficients de 10^x (x>=2) sont égaux à 9. Lorsque vous démarrez réellement le codage de ce (ou de le faire à la main), vous commencez à réaliser que de le faire avec un pur regex approche va être douloureux.
Regex ne prend pas en charge arithmentic et Notepad++ ne prend pas en charge tout calcul au-delà de regex, si vous êtes coincé si vous êtes à limiter vous-même à cet outil. Il y a, bien sûr, beaucoup d'autres non-Notepad++ solutions, dont certaines sont abordées dans Opérations mathématiques dans les regex.