Ios 从字符串的句子中提取整数、小数和小数
如何从句子中提取包含整数、小数和分数的字符串数组? 请在iOS Swift中找到以下输入和输出 输入:字符串数组[“宽度32.3”,“长度61 1/4”,“高度23 4/5”,“测量值5.23”]Ios 从字符串的句子中提取整数、小数和小数,ios,arrays,swift,string,Ios,Arrays,Swift,String,如何从句子中提取包含整数、小数和分数的字符串数组? 请在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:
输出:[“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)
该模式搜索
- 一个或多个数字
- 后跟空白字符或点
- 后跟一个或多个数字或斜杠