我正在解析一些HTML并解析子字符串。首先,我将从元素中解析出的所有文本放入数组中。现在,我需要使函数返回需要的子字符串数组。
这是我需要解析的一些数据(这些是我正在使用的数据的最极端的情况。)
令arr = [
“ ABC 111-1 LOC(31245)”,“ TuTh 12:15 PM-1:30 PM Something 101”,
“ MATT 1456-1 LOC(1248)”,“ Sa 4:15 PM-7:15 PM SomePlace 532”,
“ AC G7700 LOC(1248)”,“日期:待定”
]
我关心的是每个加粗的子字符串。
我正在创建一个循环
for i in 0...arr.count - 1 {
if i % 2 == 0 {
let product = parseProduct[arr[i]]
let delivery = parseSchedule[arr[i+1]]
}
}
我需要创建parseProduct和parseSchedule函数的帮助,这些函数返回parse子字符串的数组。
产品阵列的最终输出
在第一次循环迭代之后,我想要这个结果
product = ["ABC", "111-1", "31245"]
delivery = ["TuTh", "12:15PM", "1:30PM", "Something", "101]
最佳答案
您可以尝试那些正则表达式.*?(?= LOC)
从字符串开头匹配到LOC
see here(?<=\().*?(?=\))
从括号中匹配到另一个,它将与括号see here中的数字匹配.*(?= -)
从字符串开头到-
匹配,它将匹配TuTh 12:15PM
和类似的see here(?<=- ).*
匹配时间12:00PM
,从-
到字符串see here的结尾DATE:.*
匹配DATE:
以及see here之后的所有内容。如果您也想支持小写字母date:
,请使用不区分大小写的i
标志。
免责声明:我对Swift不熟悉,无法测试其regex引擎,因此我使用了prep引擎。您的引擎可能不支持先行/后退,并且大多数这些正则表达式将无法正常工作。
如果不是您要搜索的内容,请留下评论,并在问题中添加更多信息:更长的数组,异常,是否区分大小写,每个加粗的子字符串遵循的模式等。