/ / In Saxon 9 er Java XML-Parser werden Wortgrenzen (b) in regulären Ausdrücken nicht erkannt - Java, XML, XML-Parsing, Saxon

In Saxon 9 the Java XML Parser werden Wortgrenzen (b) in regulären Ausdrücken nicht erkannt - java, xml, xml-parsing, saxon

Ich habe den folgenden einfachen regulären Ausdruck:

bw+b

Saxon meldet folgenden Fehler:

syntax error at char 2 in regular expression: Escape character "b" not allowed

Bedeutet das, dass ich mit Java-Saxon-Parser keine Wortgrenzen verwenden kann? Gibt es einen alternativen kostenlosen XML-Java-Parser, der über diese Funktionalität verfügt?

Antworten:

3 für die Antwort № 1

Der in XSD undXPath erkennt b nicht (entweder als Wortgrenze oder als Rücktaste). Ich denke, der Grund für den Ausschluss war wahrscheinlich eine unangebrachte Angst, dass Wortgrenzen sprach- / kulturabhängig sind, obwohl dies unlogisch ist, da der Dialekt w (ein Wortzeichen) unterstützt, und eine Wortgrenze kann einfach als Grenze zwischen beiden definiert werden ein Zeichen, das mit w übereinstimmt, und ein Zeichen, das nicht stimmt. Alternativ könnte sich das XSD-Team Sorgen über die Unklarheiten gemacht haben, die bei Übereinstimmungen mit der Länge Null auftreten, die eine berüchtigte Fehlerquelle darstellen und es sehr schwer machen, genau festzulegen, was reguläre Ausdrücke tun.

Es handelt sich also nicht um eine sächsische Einschränkung, sondern um eine Einschränkung, die in der XPath-Spezifikation enthalten ist.

Wenn Sie sich nicht zu sehr um Normen kümmernKonformität, Saxon erlaubt Ihnen, "!" am Ende des "flags" -Argements, um anzuzeigen, dass Ihr regulärer Ausdruck ein regulärer Java-Ausdruck und kein regulärer XPath-Ausdruck ist.