6 Stimmen

Wie verwendet man reguläre Ausdrücke (\b, \w) in Freemarker?

${str?replace("\d+", "", "r")};

Ich wollte \d verwenden, um Zahlen zu entfernen, aber es hat nicht funktioniert!!!

Aber ${str?replace("[0-9]", "", "r")}; funktioniert!!!

Also, ich möchte wissen, wie man regex wie \d, \b, \w usw. verwendet?

12voto

Tim Pietzcker Punkte 311448

Sie müssen die Rückslashes verdoppeln:

${str?replace("\\\\d+", "", "r")};

Dies liegt daran, dass die Regeln zur Zeichenkettenmaskierung vor den Regeln zur Regex-Maskierung angewendet werden. Daher wird die Zeichenkette "\\d" in das Regex \d übersetzt, das dann eine Ziffer übereinstimmt.

Wenn Ihre Zeichenkette "\d" ist, übersetzt der Zeichenkettenprozessor sie in ein Literal d (da \d keine erkannte Zeichenkettenmaskierungssequenz ist, wird sie ignoriert).

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