我有串多语言,我尝试做的是所有的改变字体。“[^ A-ZA-Z]。”在字符串。
我尝试用regex.matches合作,以获得所有比赛的范围,但我收到的范围是错误的。
let regex = try! NSRegularExpression(pattern: ".*[^A-Za-z].*", options: NSRegularExpression.Options())
let value = regex.matches(in: self.titleLabel.text!, options: NSRegularExpression.MatchingOptions(), range:NSMakeRange(0, self.titleLabel.text!.count))
NSRange
和NSRegularExpression
类早夫特和是基于NSString
概念,一个字符等于一个UTF-16码。在另一方面,斯威夫特的String
类有一个字符是一个Unicode扩展graphe集群,即可以在文本编辑器中选择的最小单位的概念。因此,当您指定位置或长度,NSRange
/ NSString
和String
不同。
通常的棘手是使用NSString
实例(而不是String
实例)为正则表达式处理:
let regex = try! NSRegularExpression(pattern: ".*[^A-Za-z].*", options: NSRegularExpression.Options())
let text = self.titleLabel.text! as NSString
let value = regex.matches(in: text, options: NSRegularExpression.MatchingOptions(), range:NSMakeRange(0, text.length))