如何從句子中提取整數,小數和分數的字符串數組? 請在iOS Swift中查找下面的輸入和輸出。從字符串的句子中提取整數,小數和小數數字
輸入:字符串的數組[ 「寬度32.3」, 「長度61 1/4」, 「高度23 4/5」, 「測度5.23」]
輸出:[ 「32.3」,「61 1/4" , 「23 4/5」, 「5.23」]
如何從句子中提取整數,小數和分數的字符串數組? 請在iOS Swift中查找下面的輸入和輸出。從字符串的句子中提取整數,小數和小數數字
輸入:字符串的數組[ 「寬度32.3」, 「長度61 1/4」, 「高度23 4/5」, 「測度5.23」]
輸出:[ 「32.3」,「61 1/4" , 「23 4/5」, 「5.23」]
添加這種支持正則表達式匹配的字符串:
extension String {
mutating func stringByRemovingRegexMatches(pattern: String, replaceWith: String = "") {
do {
let regex = try NSRegularExpression(pattern: pattern, options: NSRegularExpression.Options.caseInsensitive)
let range = NSMakeRange(0, self.characters.count)
self = regex.stringByReplacingMatches(in: self, options: [], range: range, withTemplate: replaceWith)
} catch {
return
}
}
}
然後:
var str = ["width 32.3", "Length 61 1/4", "height 23 4/5", "measure 5.23"]
var vreturn:[String]=[]
for var s in str {
s.stringByRemovingRegexMatches(pattern:"[a-zA-Z]", replaceWith: "")
vreturn.append(s)
}
print(vreturn)
與正則表達式的另一種方法
let array = ["width 32.3", "Length 61 1/4", "height 23 4/5", "measure 5.23"]
let pattern = "\\d+[\\s.][\\d/]+"
let regex = try! NSRegularExpression(pattern: pattern)
var result = [String]()
for item in array {
if let match = regex.firstMatch(in: item, range: NSRange(location:0, length: item.characters.count)) {
result.append((item as NSString).substring(with: match.range))
}
}
print(result)
圖案搜索
謝謝,這也適用於我需要的確切輸出。 –
該字符串將是任何字符串,它是一個動態測試輸入,不僅寬度,長度,任何字符串。對於你的情況,如果它是靜態數據,你的提取是正確的。對於動態數據,如何提取數字或分數或數字。 –
非常感謝,你節省了我的時間。現在它完美的工作。 –
請考慮每個提取的字符串以(白色)空格字符開頭。 – vadian