2010-12-15 13 views
7

Ich habe eine Resoure.resx-Datei, die ich brauche, um zu suchen Strings zu finden mit einem Leerzeichen enden. Ich habe bemerkt, dass ich in Visual Web Developer nach Regex und Wildcards suchen kann, aber ich kann nicht herausfinden, wie man am Ende nur Strings mit Leerzeichen findet. Ich habe versucht, diese Regex aber hat nicht funktioniert:mit Wildcards oder regex

\s$ 

Können Sie mir ein Beispiel nennen? Vielen Dank!

+0

Können Sie Ihren Code zeigen? Diese Regex sollte zu jeder Zeichenfolge passen, die mindestens ein Leerzeichen ** am ** Ende der Zeichenfolge hat, was von Ihrer Frage nach dem klingt, wonach Sie suchen. –

+0

Ja - was für einen Sinn hat es nicht funktioniert? – Dogweather

+0

Ich habe keinen Code, nur mit "Suchen und Ersetzen" -Feature in Visual Web Developer, und ich wählte "Reguläre Ausdrücke". Ist es nicht möglich in resx-Dateien zu suchen? – Martin

Antwort

11

Ich würde erwarten, dass zu arbeiten, obwohl seit \s enthält \n und \r, vielleicht wird es verwirrt. Oder ich nehme an, es ist möglich (aber wirklich unwahrscheinlich), dass der Geschmack der regulären Ausdrücke, die Visual Web Developer verwendet (ich habe keine Kopie) nicht die \s Zeichenklasse hat. Versuchen Sie folgendes:

[ \f\t\v]$ 

..., die für einen Raum sucht, Seitenvorschub, Registerkarte oder vertikale Register am Ende einer Zeile.

Wenn Sie eine Suche und ersetzen und wollen tun, um loszuwerden, all des Leerzeichen am Ende der Zeile, dann as RageZ points out, mögen Sie enthält einen gierigen Quantor (+ im Sinne von „ein oder mehr "), so dass Sie so viel wie möglich greifen:

[ \f\t\v]+$ 
+0

Vielen Dank! Es scheint jedoch merkwürdig, es sucht und findet Zeichenfolgen, aber keine von ihnen endet mit einem Leerzeichen. Vielleicht sollte ich die Datei in einem anderen Programm öffnen, das Regex behandelt und dort sucht. – Martin

6

Sie waren fast da. Hinzufügen des + Zeichens bedeutet 1 Zeichen zu einer unendlichen Anzahl von Zeichen.

Dies würde es wahrscheinlich machen:

\s+$ 
+0

Wenn es sein Ziel ist, nur Strings zu finden, die am Ende * * whitespace haben, brauchen Sie das '+' nicht; Es genügt, nur den letzten Whitespace zu finden. –

+0

@TJ: Ja, aber ich denke, die OP will am Ende der Zeile jeden Whitespace loswerden. Ich nehme an – RageZ

1

Vielleicht wäre diese Arbeit:

^.+\s$ 

Mit diesem werden Sie auch nicht leere Zeilen finden, die mit einem Leerzeichen enden.

+0

Wenn eine Zeile mit einem Leerzeichen endet, ist sie definitionsgemäß nicht leer. Keine Notwendigkeit für die '^. +'. –

+0

@ T.J .: wahr; aber ich nahm OP wollte Linien finden, mit Inhalt und Leerzeichen am Ende (obwohl '^. +' könnte auch nur Leerzeichen in Zeile passen beginnend) – darioo