Имам следния прост редовен израз:
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.