#regex #xml #xsd
#регулярное выражение #xml #xsd
Вопрос:
Я пишу ограничение шаблона XSD, и у меня есть следующие допустимые строки
- $name
- {.newvalue}
- {тестирование}
- $name.testing
И приведенные ниже недопустимые
- {$testing}
- $тестирование}
- {тестирование
Не допускается использование символов верхнего регистра или @.
Я пробовал это <xs:pattern value="{w?[a-z0-9A-Z.]*}|$w (.[w] )*"/>
эта работа частично, но не удовлетворяет всем условиям
Приветствуется любая помощь.
Ответ №1:
Вы можете использовать
<xs:pattern value="$[a-z0-9] (.[a-z0-9] )*|{.?[a-z0-9] }" />
Регулярное выражение XSD всегда привязано к началу / концу строки, смотрите демонстрацию регулярных выражений.
Подробные сведения
$[a-z0-9] (.[a-z0-9] )*
—$
, одна или несколько строчных букв ASCII, а затем нулевые или mre последовательности точки и одной или нескольких строчных букв ASCII|
— или{.?[a-z0-9] }
—{
, необязательно.
, затем 1 или более строчных букв ASCII, а затем}
символ.
Комментарии:
1. Спасибо Виктору, как и в прошлый раз, когда это сработало. Большое вам спасибо.
Ответ №2:
Попробуйте {?$?[a-z.] }?
Нелегко определить, каковы фактические правила: ваша попытка регулярного выражения допускает цифры, но ни в одном из примеров цифры не используются; и ваша попытка регулярного выражения явно допускает верхний регистр, но ваш текст предполагает, что верхний регистр не разрешен. И почему вы упоминаете именно «@», а не другие знаки препинания?