从字符串中提取特定的字符串模式 (swift 2)
Extract a specific string pattern from a String (swift 2)
我有一个应用程序可以检测用户从应用程序或使用 OCR 从现有图像中获取的任何图像中的文本。这是有效的,但如果图像中有很多我想要的数字设置的 unnesseasry 数字,所有内容都会被检测到。所以我想从检测到的文本字符串中提取始终具有模式的数字,
举个例子,
我的字符串可以是这样的,
"3456 7834 5623 iuhef654sca 869878zsc ttv"
我只想从上面的字符串中获取“3456 7834 5623”部分。其中有两个空格,三组 4 位数字。我是怎么做到的?实现它的最佳方法是什么?
您可以使用正则表达式模式“(\\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"
}
我有一个应用程序可以检测用户从应用程序或使用 OCR 从现有图像中获取的任何图像中的文本。这是有效的,但如果图像中有很多我想要的数字设置的 unnesseasry 数字,所有内容都会被检测到。所以我想从检测到的文本字符串中提取始终具有模式的数字,
举个例子, 我的字符串可以是这样的,
"3456 7834 5623 iuhef654sca 869878zsc ttv"
我只想从上面的字符串中获取“3456 7834 5623”部分。其中有两个空格,三组 4 位数字。我是怎么做到的?实现它的最佳方法是什么?
您可以使用正则表达式模式“(\\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"
}