2015-04-09 2 views
2

У меня есть XSD с полем, которое имеет следующее значение шаблона:Java регулярное выражение против XSD регулярных выражений

<xs:restriction base="xs:string"> 
    <xs:pattern value="[0-9]{1,6}(/([IXCDVML]+)|([0-9]+))?"/> 
</xs:restriction> 

Как я могу написать выше XSD в Java?

+1

То же самое должно работать с 'String.matches()' – nhahtdh

ответ

3

Регулярные выражения в XSD неявно закреплены в начале и в конце по ^ и $, но регулярные выражения в Java нет, поэтому добавьте их в явном виде:

^[0-9]{1,6}(/([IXCDVML]+)|([0-9]+))?$ 

Reference:

Примечание: В отличие от некоторых популярных языков регулярных выражений (включая те, которые определены Perl и стандартными утилитами Unix), обычный Язык выражения, определенный здесь, неявно закрепляет все правильные выражения в голове и хвосте, поскольку наиболее частое использование регулярных выражений в · pattern · соответствует всем литералам.

Смежные вопросы