arrays - Swift 正则表达式和分隔符

标签 arrays regex swift delimiter

我正在解析一些 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/

相关文章:

json - Swift3 JSONSerialization with [String :Any] rather than NSDictionary

javascript - 按值比较数组中的所有对象

javascript - 代码审查 : Deep filter array of objects concisely in Javascript

java - 具有不同数组参数的构造函数 java

ios - 带子节点的SKSpriteNode的触摸检测

ios - 如何更改位于 UIPageViewController 的 ViewController 中的 label.text?快速 ios xcode

java - 如何将文件中的字符串转换为数组?

带有正则表达式的 Java IllegalStateException

java - 在 '@'之前屏蔽电子邮件中的中间字符

regex - 正则表达式匹配数字和字符