XML Шаблон проверки схемы не должен допускать строку - PullRequest
0 голосов
/ 07 августа 2020

Я хочу разрешить буквенно-цифровые c символы, за исключением мира «AAAA». Я использую следующее регулярное выражение

  1. Чтобы разрешить буквенно-цифровые c символы <xs:pattern value="[A-Za-z0-9]{2,4}"/>
  2. Не разрешать AAAA как <xs:pattern value="[^A]{4}"/>

Но если я объединю оба, это не сработает. Пожалуйста, помогите

1 Ответ

0 голосов
/ 07 августа 2020

Непросто сопоставить строки с помощью регулярного выражения. Шаблон [^A]{4} не означает , а не 4 появления A . Это означает 4 вхождения 'not A' .

Я думаю, что должно работать что-то вроде этого:

[A-Za-z0-9]{2,3} | 
[B-Za-z0-9][A-Za-z0-9]{3} | 
[A-Za-z0-9][B-Za-z0-9][A-Za-z0-9]{2} |
[A-Za-z0-9]{2}[B-Za-z0-9][A-Za-z0-9] |
[A-Za-z0-9]{3}[B-Za-z0-9]

, что означает,

  • 2-символьный или 3-символьный алфавитно-цифровой код c строка или
  • 4-символьный алфавитно-цифровой код c строка, в которой первый символ не является 'A' или
  • 4-символьный алфавитно-цифровой код c строка со вторым символом не 'A' или
  • строка из 4 буквенно-цифровых символов c строка с 3-м символом, а не 'A' или
  • строка из 4 букв и цифр c строка с 4-й символ, а не «A»

Может быть более простое решение, но я не могу его придумать.

...