如何从点(a)swift获得价值

时间:2016-01-07 04:23:00

标签: ios swift swift2

我有这种字符串:" docker-compose.yml"。

任何人都知道如何从此字符串中获取POINT(101.650577657408 3.1653186153213)的第一个和第二个值?

3 个答案:

答案 0 :(得分:1)

您可以使用componentsSeparatedByString函数轻松吐出字符串。

let myStr = "POINT(101.650577657408 3.1653186153213)"
let characterSet = NSCharacterSet(charactersInString: "( )")
var splitString = myStr.componentsSeparatedByCharactersInSet(characterSet)
print(splitString[0])
print(splitString[1])
print(splitString[2])

只有拥有完整的一个字符串时才能使用上述内容。

答案 1 :(得分:1)

虽然NSCharacterSet解决方案是正确的,但这是使用最强大的正则表达式的另一种解决方案。

var error: NSError?

// Initialise the regex for a float value
let regex: NSRegularExpression = NSRegularExpression(pattern: "(\\d*\\.\\d*)", options: NSRegularExpressionOptions.CaseInsensitive, error: &error)! 

// Matches array contains all the match found for float in given string
let matches: NSArray = regex.matchesInString(str as String, options: NSMatchingOptions.ReportProgress, range: NSMakeRange(0, str.length))

// You can easily get all values by enumeration
for match in matches {
    println(str.substringWithRange(match.range))
}

此解决方案的好处是它将扫描所有浮点值,并且还可以在模式更改的情况下工作。

答案 2 :(得分:0)

试试这个,这适用于您的字符串

element