#ios #swift #regex
#iOS #swift #регулярное выражение
Вопрос:
Я пытаюсь создать регулярное выражение с форматом «dd-dd-dd» в Swift
Я придумал это :
(d{1,2})(-)(d{1,2})(-)(d{1,2})
Этот шаблон дает мне правильный результат, если строка задана целиком. Пример :
12-32-42 -> correct
2-32-1 -> correct
2--32-3 -> incorrect
Я буду использовать этот шаблон в текстовых полях.
Что я хотел бы знать, так это то, движется ли введенная строка к положительной проверке регулярных выражений. Пример :
12 -> correct
-12-32 -> correct
12- -> correct
-12-- -> incorrect
Я буду благодарен за любую помощь, которую вы можете предоставить.
Комментарии:
1. Только одно тире между числами является правильным.
2. Почему это
-12-32
правильно? Это начинается с-
. Я бы посоветовалlet pattern = "^\d{1,2}(?:-(?:\d{1,2}(?:-\d{0,2})?)?)?$"
, см. regex101.com/r/eHHG2l/1 .
Ответ №1:
Одним из вариантов может быть перечисление возможных комбинаций в чередовании:
^(?:d{1,2}-d{1,2}-d{1,2}|d{1,2}-|-d{1,2}-d{1,2}|d{1,2})$
Комментарии:
1. Может быть, не идеально, но это работает, и это именно то, что я хотел. Спасибо!