J'essaye de formater un numéro de téléphone au format (###) ### - ####.iOS NSRegularExpression avec pièce conditionnelle de modèle
J'utilise l'expression rationnelle suivante avec le modèle de remplacement
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"
)
Le problème est que ma chaîne de modèle inclut le -
hardcoded qui ne devrait pas apparaître si le troisième groupe de capture $ 3 est introuvable.
Par exemple:
rawNumber = "5125"
serait remplacé comme (512) 5-
quand je veux réellement dans le format (512) 5
, parce que je ne veux pas le -
à afficher à moins que le troisième groupe de capture était a trouvé.
Par exemple, j'espérais qu'il pourrait y avoir un moyen de faire un modèle comme quelque chose comme:
"($1) $2if$3{-}$3"