25 Stimmen

Notepad++ Regex zum Finden von 3 aufeinanderfolgenden Zahlen

Ich versuche, mit Notepadd++ alle Vorkommen von width=xxx zu finden, damit ich sie in width="xxx" ändern kann.

Soweit ich weiß, ist width=[^ \n ], das nur width=x auswählt

34voto

spender Punkte 111351

Wenn Sie genau 3 Zahlen benötigen, wird das Folgende in Notepad++ getestet:

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

Wenn Sie Ihren Bedarf genauer kennen, können Sie die Tagging-Funktion nutzen:

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

Hier werden die (n) eingeklammerten Teile des Regex (nacheinander) gespeichert als \1 , \2 ,... \n auf die im Ersetzungsfeld Bezug genommen werden kann.

Als Regex-Engine ist Notepad++ schlecht. Hier ist eine Beschreibung dessen, was unterstützt wird. Ziemlich grundlegend.

2 Stimmen

Es unterstützt also nicht {3} aber es unterstützt die Negierung von Zeichenklassen (was nicht immer unterstützt wird?), welche Art von "Reguläre Ausdrücke" Verrücktheit haben sie in Notepad++???

0 Stimmen

Es unterstützt zwar \d die auf dieser Seite nicht aufgeführt ist, so dass ich vermute, dass die Seite ungenau und veraltet ist. Ich habe verwendet \s + und \t.

0 Stimmen

Die width=" \1 " \2 ersetzen Blätter width="", so dass es aussieht wie die \1 gibt keine Ziffern zurück

12voto

Anthony Forloney Punkte 87227

Die Betrachtung der Notepad++ Liste regulärer Ausdrücke nicht zu unterstützen, da die {n} Notation zu entsprechen n Zeichen, also \d{3} hat nicht funktioniert.

Was bei mir jedoch funktioniert hat und als Hack angesehen werden kann, war: \d\d\d

Getestet in Notepad++ und hat funktioniert, für das Feld Suchen verwenden (\d\d\d) und für das Replace-File verwenden "\1"\2 .

0 Stimmen

Dies war ein Erfolg width= \d\d\d aber ich weiß nicht, wie ich die Ersetzung einstellen soll, um die 3 Zahlen zu erhalten.

11voto

Rauni Lillemets Punkte 2026

Wie Tao bemerkte, unterstützt Notepad++ ab Version 6 PCRE.

Jetzt können Sie also schreiben:

\d{1,5}

0 Stimmen

Ich habe es in 6.3 getestet, es sagt "Falscher regulärer Ausdruck"... Es sollte sein \d{1,5}

0 Stimmen

Unglaublich! Genau das, wonach ich gesucht habe. Verwenden Sie \d{10} zum Beispiel, um eine Folge von 10 Zahlen zu finden.

2voto

Robusto Punkte 30472
/(width=)(\d+?)/gim

Denn Sie möchten vielleicht variable Ziffern. Einige Breiten können 8 oder 15 oder 200 oder was auch immer sein.

Wenn Sie einen Bereich angeben möchten, gehen Sie folgendermaßen vor:

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

wobei die 1 die Untergrenze und die 3 die Obergrenze darstellt.

Ich habe beide Teile des Ausdrucks gruppiert, so dass Sie beim Ersetzen den ersten Teil beibehalten können, ohne dass er wegfliegt.

2voto

Gargauth Punkte 2235

Ausprobiert: ersetzen width=([0-9][0-9][0-9]) con width="\1" und funktionierte gut... Natürlich könnte nicht die beste Syntax sein, dies zu tun, aber es funktioniert...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X