在字符串中查找数字并返回位置和长度

Posted

技术标签:

【中文标题】在字符串中查找数字并返回位置和长度【英文标题】:Find number in string and return location and length 【发布时间】:2019-01-05 17:58:33 【问题描述】:
let myStr = "I have 4.34 apples."

我需要位置范围和长度,因为我使用 NSRange(location:, length:) 将数字 4.34 加粗

extension String
    func findNumbersAndBoldThem()->NSAttributedString
         //the code
    

【问题讨论】:

【参考方案1】:

我的建议也是基于正则表达式,但是有一种更方便的方法可以从Range<String.Index> 获取NSRange

let myStr = "I have 4.34 apples."
if let range = myStr.range(of: "\\d+\\.\\d+", options: .regularExpression) 
    let nsRange = NSRange(range, in: myStr)
    print(nsRange)

如果要检测整数和浮点值,请使用模式

"\\d+(\\.\\d+)?"

括号和结尾的问号表示小数点和小数位是可选的。

【讨论】:

如果我的苹果是 4 则范围为零。如何解决? 谢谢先生!你能告诉我在哪里可以读到这个->。 “\\d+(\\.\\d+)?”表情明白吗?谢谢! 一个很好的教程是Ray Wenderlich: NSRegularExpression Tutorial and Cheat Sheet

以上是关于在字符串中查找数字并返回位置和长度的主要内容,如果未能解决你的问题,请参考以下文章

charAt()取出指定位置的字符 .length()得到一个字符串的长度 indexOf()查找一个指定的字符是否存在并返回其位置 trim()去掉字符串的左

sqlserver 字符截取、查找

两个字符串查找最大公共子串

python中怎么返回指定查找字符的位置

Excel中使用vba代码查找字符串并返回该单元格的位置

jquery查找字符串,并且定位到字符串所在位置