Регулярное выражение VBScript — условное соответствие

#regex #vbscript

#регулярное выражение #vbscript

Вопрос:

Я ищу соответствие с использованием regexp в строках VBScript, которые начинаются с одной или нескольких цифр, имеют промежуточные заглавные буквы или пробелы или строки, которые начинаются с заглавных букв и пробелов и заканчиваются одной или несколькими цифрами.

Пробовал "^([0-9] [A-Zs] )|([A-Zs] [0-9] )$" , но не работает.

Пример строк соответствия:

 75 MANOJ TIGADI
VASANT KANETKAR 111
  

Ответ №1:

Вы могли бы сопоставить его обоими способами, используя чередование внутри группировки.

Если вам не нужно значение в виде группы, вы можете сделать его не фиксируемым.

Если вы не хотите сопоставлять только пробелы, но один пробел между прописными символами и без конечных пробелов, вы можете использовать необязательную повторяющуюся группу (?: [A-Z] )*

Обратите внимание, что s также может совпадать с новой строкой.

 ^(?:[0-9] (?: [A-Z] )*|[A-Z] (?: [A-Z] )* [0-9] )$
  

Демонстрация регулярных выражений