Я пытаюсь отформатировать телефонный номер в формате (###) ### - ####.iOS NSRegularExpression с условным элементом шаблона
Я использую следующее регулярное выражение с шаблоном замены
let regex = try NSRegularExpression(pattern: "([0-9]{3})([0-9]{1,3})([0-9]{0,4})")
regex.stringByReplacingMatches(
in: rawNumber,
options: .reportCompletion,
range: NSRange(location: 0, length: rawNumber.characters.count),
withTemplate: "($1) $2-$3"
)
Проблема заключается в том, что мой шаблон строка содержит жёстко прописанные -
, который не должен появиться, если третья группа захвата $ 3 не найден.
Например:
rawNumber = "5125"
будет заменен, как (512) 5-
, когда я на самом деле хочу его в формате (512) 5
, потому что я не хочу -
быть показано, если третья группа захвата не было найденный.
Например, я надеялся, что может быть способ сделать шаблон, как что-то вроде:
"($1) $2if$3{-}$3"