【问题标题】:Extract a specific string pattern from a String (swift 2)从字符串中提取特定的字符串模式(swift 2)
【发布时间】:2017-09-25 11:15:19
【问题描述】:

我有一个应用程序,它可以检测用户从应用程序或使用 OCR 从现有图像中获取的任何图像中的文本。这是有效的,但如果图像有很多我想要的数字集的不合理数字,一切都会被检测到。所以我想从检测到的文本字符串中提取总是有模式的数字,

例如, 我的字符串可以是这样的,

“3456 7834 5623 iuhef654sca 869878zsc ttv”

我只想从上面的字符串中获取“3456 7834 5623”部分。其中有两个空格,三组4位数字。我是怎么做到的?实现它的最佳方法是什么?

【问题讨论】:

标签: swift swift2


【解决方案1】:

您可以使用正则表达式模式“(\\d){4} (\\d){4} (\\d){4}”,如下所示:

let string = "3456 7834 5623 iuhef654sca 869878zsc ttv"
let pattern = "(\\d){4} (\\d){4} (\\d){4}"
if let range = string.range(of: pattern, options: .regularExpression) {
    print(string[range])  // "3456 7834 5623\n"
}

【讨论】:

  • 非常感谢您的帮助!我正在使用 swift 2。你能帮我解决这个问题的 swift 2 版本吗?
  • 您可以使用的另一种正则表达式模式是 "((\\d){4} ){2}(\\d){4}"
  • 尝试 rangeOfString 并将选项设置为 NSStringCompareOptions.RegularExpressionSearch
  • 类似string.rangeOfString(pattern, options: NSStringCompareOptions.RegularExpressionSearch, range: nil, locale: nil)
猜你喜欢
  • 2019-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-07
  • 2019-03-20
  • 2018-10-10
相关资源
最近更新 更多