Я пытаюсь проверить строку в xsd, которая требует использования регулярных выражений. Строка примет вид следующего ...
JOE ~ ПИТ ~ SAM ~ ЛПП
и следующие считаются действительными ...
JOE
~PETE
JOE~SAM~
~~~BOB
JOE~PETE~~
также, каждое из имен в пределах ~ может содержать не более 6 символов (или цифр), и может содержать не более 4 имен.
Регулярное выражение, которое я сейчас пытаюсь, это ...
[0-9a-Za-Z] {0,6} [~] {0,1} | [0-9a-Za-Z] {0,6} [~] {1} [0-9a -zA-Z] {0,4} [~] {0,1}
но мне интересно, является ли их лучшим решением.
ПРИМЕЧАНИЕ: я должен уточнить немного ... если разрешено только 4 имени, это означает, что максимально допустимо будет только 3 ~. Тильды обозначают позицию, поэтому, если ~~~ BOB произошел, это означало бы, что позиции 1, 2 и 3 были пусты, а 4-й был занят BOB. Также, если у вас был JOE ~~~, JOE находится на первой позиции, а остальные пусты. Ноль или более имен могут быть в любой из 4 позиций. Также допускаются такие символы, как., *, Пробел и другие.