假设我有一个字符串" 10.9.1.1",我想得到子字符串" 10.9"。我怎样才能做到这一点? 到目前为止,我有以下内容:
var str = "10.9.1.1"
let range = str.rangeOfString(".",options: .RegularExpressionSearch)!
let rangeOfDecimal = Range(start:str.startIndex,end:range.endIndex)
var subStr = str.subStringWithRange(rangeOfDecimal)
但这只会返回10。
答案 0 :(得分:1)
实际上你的代码会返回" 1"只是因为"。"在一个普通的 表达模式匹配任何字符。
正确的模式是
\d+ one ore more digits
\. a literal dot
\d+ one or more digits
在Swift字符串中,您必须将反斜杠转义为"\\"
:
let str = "10.9.1.1"
if let range = str.rangeOfString("\\d+\\.\\d+",options: .RegularExpressionSearch) {
let subStr = str.substringWithRange(range)
println(subStr) // "10.9"
}