Swift 3:使用非匹配部分提取正则表达式匹配

时间:2016-10-03 09:45:38

标签: regex swift string

我想用数字,日期和其他字符串的许多不同模式分析字符串。所以我想要按顺序查看一系列模式。

let patterns = [... "\\d{6}", "\\d{4}", "\\d" ]  // to be extended :-)
let s = "IMG_123456_2006.10.03-13.52.59 Testfile_2009_5"

从模式中的第一项开始,我需要在字符串s中搜索。如果找到,应将字符串拆分成已找到的部分,例如" 2006"和" 2009"和不匹配的部分。其余部分将使用下一个模式进行搜索,依此类推。假设我已经在中间定义了时间/日期的模式,应该放在第一个项目上,分割的字符串应该如下所示:

"IMG_", "123456", "_", "2006.10.03-13.52.59", " Testfile_", "2009", "_", "5"

我可以使用regex.matches的内置功能,还是必须自己编写所有内容?

我已经找到了一场比赛。但是我必须使用范围来分割字符串并对其余部分一次又一次地执行,直到没有指示进一步的匹配。这比使用match.numberOfRanges中的结果需要更多的计算。有哪些小解决方案?

0 个答案:

没有答案