/ / В Saxon 9 he Java XML анализатор, границите на думата (b) в регулярни изрази не се разпознават - java, xml, xml-синтактичен анализ, саксонски

В саксонския 9 XML Java parser, границите на думите (b) в регулярните изрази не са разпознати - java, xml, xml-parsing, saxon

Имам следния прост редовен израз:

bw+b

Saxon съобщава за следната грешка:

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

Означава ли, че не мога да използвам граници на думи с анализатор на Java Saxon? Има ли алтернативен безплатен XML Java анализатор, който има тази функционалност?

Отговори:

3 за отговор № 1

Диалектът с регулярни изрази, използван в XSD иXPath не разпознава b (или като граница на думите или като обратна област). Мисля, че причината за изключването му вероятно е била неправилна тревога, че границите на думите зависят от езика / културата, макар че това е „нелогично, тъй като диалектът поддържа w (символ на думата) и граница на думата може просто да бъде определена като граница между герой, който съвпада с w и герой, който не "t. Алтернативно екипът на XSD може да се е притеснил от неяснотите, които възникват при съвпадения с нулева дължина, които са прословут източник на грешки и правят много трудно да се определи точно какво точно правят регулярните изрази.

Така че това не е саксонско ограничение, а ограничение, записано в спецификацията на XPath.

Ако не сте много загрижени за стандартитесъответствие, Saxon ви позволява да поставите "!" в края на аргумента "flags", за да посочите, че вашият редовен израз е редовен израз на Java, а не редовен израз XPath.