我有以下内容,它在另一个字符串中获取字符串的匹配:
let a : String = "https://www.example.com"
let b = a as NSString
let regex : NSRegularExpression = try! NSRegularExpression(pattern: "(\\.(.*)\\. || /(.*)\\.)", options: .CaseInsensitive)
let text = regex.matchesInString(a, options: [], range: NSMakeRange(0, b.length))
return text.map {b.substringWithRange($0.range)}[0].stringByReplacingOccurrencesOfString(".", withString: "")
目标是创建一个更易读的域名版本。例如 - https://www.example.com应该变为:example
但是这会返回一个空字符串。
我的正则表达式有问题吗?
答案 0 :(得分:1)
你的正则表达式模式中有空格。
您正在使用||。这并不意味着正则表达式中的OR。
你正在筑巢。
我修改了你的正则表达式,它正在做你期望的事情。
secondStoryboard
输出:
let a : String = "https://www.example.com"
let b = a as NSString
let regex : NSRegularExpression = try! NSRegularExpression(pattern: "\\.(.*)\\.", options: .CaseInsensitive)
let text = regex.matchesInString(a, options: [], range: NSMakeRange(0, b.length))
return text.map {b.substringWithRange($0.range)}[0].stringByReplacingOccurrencesOfString(".", withString: "")