/ / Em Saxon 9 ele analisador Java XML, limites de palavras (b) em expressões regulares não são reconhecidos - java, xml, xml-parsing, saxon

Em Saxon 9 ele analisador Java XML, limites de palavras (b) em expressões regulares não são reconhecidos - java, xml, xml-parsing, saxon

Eu tenho a seguinte expressão regular simples:

bw+b

Saxon reporta o seguinte erro:

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

Isso significa que eu não posso usar limites de palavras com o analisador Java Saxon? Existe um analisador Java XML livre alternativo que tenha essa funcionalidade?

Respostas:

3 para resposta № 1

O dialeto de expressão regular usado em XSD eXPath não reconhece b (como um limite de palavra ou como um backspace). Eu acho que a razão para excluí-lo foi provavelmente uma ansiedade deslocada de que limites de palavras são dependentes de idioma / cultura, embora isso seja ilógico, pois o dialeto suporta w (um caractere de palavra), e um limite de palavra pode ser simplesmente definido como um limite entre um caractere que combine com w e um caractere que não seja. Alternativamente, a equipe de XSD pode ter se preocupado com as ambigüidades que surgem com correspondências de comprimento zero, que são uma fonte notória de bugs e tornam muito difícil especificar rigorosamente exatamente o que as expressões regulares fazem.

Portanto, não é uma limitação saxônica, é uma limitação escrita na especificação XPath.

Se você não está muito preocupado com os padrõesConformidade, Saxon permite que você coloque "!" no final do argumento "flags" para indicar que sua expressão regular é uma expressão regular Java em vez de uma expressão regular XPath.