@SuicideBlonde

Как учесть опциональную подстроку?

Здравствйуте)

В строке с ключами t, h и w ключ h является опциональным, например во 2-й строке ключа h нету:
t:foo;h:foo;w:foo;
t:foo;w:foo;

Не пойму как правильно сделать h опциональным в RegExp-e, за опциональность в регулярках отвечает символ ? но не пойму куда и как его поместить чтобы эти 2 строки регулярка правильно валидировала.

Инет на удивление не помог(
Получилось только написать регулярку чтоб валидировала строки без опционального параметра
t:(.*);w:(.*);

Спасибо за помощь;)
  • Вопрос задан
  • 293 просмотра
Пригласить эксперта
Ответы на вопрос 2
qork
@qork
{ background: #F00B42 }
Так не проще?
/([thw]):([a-z09]+)+?;/g
https://regex101.com/r/YF7z7I/2
Для ключа можно диапазон из латиницы задать, а значение символами возможными. Можно добавить флаг регистронезависимости.
Ответ написан
Комментировать
@SuicideBlonde Автор вопроса
Отличная идея!
Спасибо.
Нечно подобное тоже безуспешно пытался сделать)

Upd: Пришел change request что все строки которые парсятся регуляркой будут обрамляться {{}},
по примеру {{t:foo;w:foo;}}

Как то очень сложно в регулярках такое казалось бы простое изменение применить(
Мысль у меня была написать вот такое \{\{(([thw]):([a-z09]+);)+\}\}
Но эта регулярка не так работает как ожидаю)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы