Beim Kopieren und Einfügen von Inhalt aus einem Word-Dokument in eine Vaadin7 RichTextArea (oder jedes andere Richtextfeld) gibt es viele unerwünschte HTML-Tags und Attribute. Da in einem aktuellen Projekt hat das Attribut Breite etwas lustiges Geschäft, würde Ich mag sieFehler beim Analysieren einer Zeichenkette mit einem Punkt in Java mit REGEX
mit folgendem funtion entfernenprivate String cleanUpHTMLcontent(String content) {
LOG.log(Level.INFO, "Cleaning up that rubbish now");
content = content.replaceAll("width=\"[0-9]*\"",""); // this works fine
content = content.replaceAll("width:[0-9]*[\\.|]*[0-9]*pt;",""); // not working
content = content.replaceAll(";width:[0-9]*[\\.|]*[0-9]*pt",""); // not working
content = content.replaceAll("width:[0-9]*[\\.|]*[0-9]*pt",""); // not working
return content;
}
Die erste Zeile funktioniert alte HTML-Tags wie width="500"
zu entfernen, die anderen Linien gehen in das style-Attribut und versuchen, die Eigenschaften wie width:300.45pt;
mit verschiedenen Positionen des Doppelpunkts zu entfernen.
Der Code funktioniert gut auf der Testseite http://www.regexplanet.com/advanced/java/index.html. Ich habe meine Regex-Strings hier speziell für Java generiert, aber es funktioniert immer noch nicht. Irgendjemand eine Idee?
Hier ist ein Beispiel, bei dem es nicht um die Breite Eigenschaft nicht finden
td style="width:453.1pt;border:solid windowtext 1.0pt;
UPDATE
content = content.replaceAll("width:\\s*[.0-9]*pt;",""); // doesn't work
content = content.replaceAll(";width:\\s*[.0-9]*pt",""); // doesn't work
content = content.replaceAll("width:\\s*[.0-9]*pt",""); // works :-)
es scheint, dass ich das Semikolon als auch zu entkommen mit ein Backslash? Ich werde prüfen, dass
Versuchen Sie es mit '(?: \\ d + (?: \\. \\ d +)? (?: pt)?)' Mit allen. [Demo] (https://regex101.com/r/fJ2uC9/1) –
Warum der vertikale Balken in '" [\\. |] "'? – Maljam
kann ein Punkt sein oder es kann kein Punkt sein –