我正在解析一些 HTML 并解析子字符串。我首先将元素中所有已解析的文本放入一个数组中。现在我需要创建返回我需要的子字符串数组的函数。
这是我需要解析的一些数据(这些是我正在处理的数据的最极端情况)。
让 arr = [
“ABC 111-1 LOC (31245)”、“TuTh 12:15PM - 下午 1:30 101 号内容”,
“MATT 1456-1 LOC (1248)”、“Sa 下午 4:15> - 7:15PM 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 函数。
产品数组的最终输出
第一次循环迭代后,我想要这个结果
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,无法使用其正则表达式引擎进行测试,因此我使用了 prep 引擎。您的引擎可能不支持向前/向后查找,并且大多数正则表达式将无法工作。
如果这些不是您搜索的内容,请发表评论,并请在您的问题中添加更多信息:更长的数组、异常(exception)、是否区分大小写、每个粗体子字符串遵循什么模式等。
关于arrays - Swift 正则表达式和分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40545792/