У меня есть простая проблема, но я не могу решить эту проблему. Либо моя строка имеет формат ID: dddd
со следующим регулярным выражением:Борьба с условными регулярными выражениями
/^ID: ([a-z0-9]*)$/
или следующим образом: ID: 1234 Status: 232
, так со следующим регулярным выражением:
/^ID: ([a-z0-9]*) Status: ([a-z0-9]*)$/
Теперь я хочу сделать одно регулярное выражение которые могут обрабатывать оба. Первое, что я придумал был такой:
/^ID: ([a-z0-9]*)$|^ID: ([a-z0-9]*) Status: ([a-z0-9]*)$/
Это соответствует, но я смотрел на условные регулярные выражения, и подумал, что что-то должно быть возможно по линиям (псевдо-codish)
if the string contains /Status:/
/^ID: ([a-z0-9]*)$/
else
/^ID: ([a-z0-9]*) Status: ([a-z0-9]*)$/
только, я не могу получить это правильно. Я думал, что должен использовать /?=/
, но понятия не имею. Что-то вроде
/((?=Status)^ID: ([a-z0-9]*) Status: ([a-z0-9]*)$|^ID: ([a-z0-9]*)$/
, но это не работает.
Вы можете помочь?
Ваш последний пример не является допустимым регулярным выражением. У него слишком много круглых скобок. –
Имеет ли идентификатор всегда четыре буквенно-цифровых символа? Если да, то почему вы пишете '*' вместо '{4}'? Могут ли быть буквы верхнего и нижнего регистра? –
Это был просто пример. Количество цифр не известно заранее. – nathanvda