我有这种字符串:" docker-compose.yml
"。
任何人都知道如何从此字符串中获取POINT(101.650577657408 3.1653186153213)
的第一个和第二个值?
答案 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