Мне нужно использовать регулярные выражения для синтаксического анализа строки.Регулярные выражения VBScript с использованием выражения OR (|)
В большинстве случаев, строка может быть проанализирован с помощью выражения
^([a-zA-Z\-\,0-9\(\)\#\/ \.]{1,21})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})
Иногда строка должна включать в себя дополнительные 4-х символов, так что выражение будет
^([a-zA-Z\-\,0-9\(\)\#\/ \.]{1,25})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})
сами по себе либо выражение будет работать над их соответствующими строками. Первый также будет технически корректным для строки, предназначенной для второго выражения, однако раздел. {0,9} выражения будет отключен на 4 символа.
A quick explanation of the expression: Subset 1: 1 - 21 (or 25 characters) any characters a-z any characters A-Z the dash, the comma any digits 0-9 the open and close parenthesis, the hash tag, forward slash, space and period. Subsets 2-7 Any characters (up to 9 total)
Я надеялся на что-то вроде выражения ниже
^([a-zA-Z\-\,0-9\(\)\#\/ \.]{1,21|25})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})
ИЛИ
^([a-zA-Z\-\,0-9\(\)\#\/ \.]{1,21}|{1,25})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})
я попробовал это, и они не работали. У кого-нибудь еще есть идеи?
Или разделить его в группе от 1 до 21 символ и необязательную группу из 4 символов: '^ ([a-zA-Z \ - \, 0-9 \ (\) \ # \/\.] {1,21} ([a-zA-Z \ - \, 0-9 \ (\) \ # \/\.] {4})?) (. {0,9}) {6} 'за счет наличия второй группы захвата с последними 4 символами, если применимо. – AutomatedChaos
@AutomatedChaos Это будет соответствовать группам 22-24 символа; это эквивалентно '... {1,25}', который OP не работает. По правде говоря, я считаю, что реальная проблема в том, что шаблон просто плохо определен (как он должен знать, где разделить последние 0 - 54 символа на 6 групп?), Но без дополнительной информации это лучший ответ, который я могу дать. –
Да, вы правы; первый может совпадать с 19 длинной строкой, а второй - с 4-мя длинными строками, что соответствует совпадению строки с длиной 23. Когда я вижу этот вопрос, это всплывает у меня в голове: не каждая проблема подходит для решения с регулярным выражением. – AutomatedChaos