【发布时间】:2017-02-21 16:15:28
【问题描述】:
我正在尝试将电话号码格式化为 (###) ###-#### 格式。
我正在使用以下带有替换模板的正则表达式
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"
【问题讨论】:
标签: ios regex swift nsregularexpression