web-dev-qa-db-fra.com

Notepad ++ regex pour trouver 3 nombres consécutifs

J'essaie d'utiliser Notepad ++ pour trouver toutes les occurrences de width = xxx afin que je puisse les changer en width = "xxx"

autant que je sache est largeur = [^\n] qui ne sélectionne que largeur = x

23
atwellpub

Si vous avez besoin d'exactement 3 chiffres, les éléments suivants sont testés dans Notepad ++:

width=\d\d\d[^\d]

Pour en savoir plus sur vos besoins, vous pouvez utiliser la fonction de marquage:

Find what:    width=(\d\d\d)([^\d])
Replace with: width="\1"\2

Ici, les (n) parties entre crochets de l'expression régulière sont stockées (dans l'ordre) sous la forme\1,\2, ...\n qui peuvent être référencées dans le champ de remplacement.

En tant que moteur d'expression régulière, Notepad ++ est médiocre. Ici est une description de ce qui est pris en charge. Assez basique.

30
spender

En regardant la Notepad ++ Regular Expression list il ne semble pas supporter le {n} notation correspondant à n caractères, donc \d{3} n'a pas marché.

Cependant, ce qui avait fonctionné pour moi et pouvait être considéré comme un hack était: \d\d\d

Testé dans Notepad ++ et a fonctionné, pour le champ Rechercher, utilisez (\d\d\d) et pour le fichier Remplacer utiliser "\1"\2.

10
Anthony Forloney

Comme l'a commenté Tao, à partir de la version 6, Notepad ++ prend en charge PCRE.

Alors maintenant, vous pouvez écrire:

\d{1,5}
8
Rauni Lillemets
/(width=)(\d+?)/gim

Parce que vous voudrez peut-être des chiffres variables. Certaines largeurs peuvent être 8, 15, 200 ou autre.

Si vous souhaitez spécifier une plage, vous le faites comme ceci:

/(width=)(\d{1,3)/gim

où le 1 représente la limite inférieure et le 3 représente la limite supérieure.

J'ai regroupé les deux parties de l'expression, donc lorsque vous remplacez, vous pouvez conserver la première partie et ne pas la souffler.

2
Robusto

J'ai essayé: remplacez width=([0-9][0-9][0-9]) par width="\1" et a bien fonctionné ... Bien sûr, ce n'est peut-être pas la meilleure syntaxe pour le faire, mais cela fonctionne ...

2
Gargauth

Je voudrais essayer celui-ci: width=(\d{3,}), et vérifier expression régulière, et aussi . Correspond à la nouvelle ligne

fonctionne pour moi sur ver: 7.5.4

0
dKucharczyk