【发布时间】:2011-12-09 08:56:58
【问题描述】:
我有一个超过 2000 行的文件需要解析。我想确保获得 100% 准确的结果,然后将其导入我的 MariaDB。
文件如下所示:
line 0: #start#
line 1: 20111211\200000
line 2: n=john|l=smith,131_stree_apt#102_city_state_11111_country,19989989988|17771112222,user%64domain.com,12,21,551|626|23\r
...
line 2156: #end#
所以 第 1 行是 24 小时格式的日期时间 第2行是行格式:
- n = 名称
- l = 姓氏
- 完整地址
- 手机+手机
- 电子邮件
- 总目标
- 总传球次数
- 冰上时间 + 板凳时间
- 处罚分钟
我无法弄清楚正则表达式。我的另一个想法是解析每一行,然后解析每个逗号,然后解析每个管道等,但我认为这种方法比正则表达式慢且不准确。我说的对吗?
【问题讨论】:
-
“我认为它比正则表达式慢且不准确”---如果你还没有制作任何一个实现,你怎么能比较它们呢?
-
@zerkms 对不起,如果我没有你那么聪明,我只是想理解并尽可能地使我的代码变得更好
-
学习是一个迭代过程。所以从你可以实现的东西开始,然后向我们展示要审查的结果(甚至还有一个stackexchange:codereview.stackexchange.com)
-
当然,explode 方法比特定的验证正则表达式更脆弱。 -- 你试过什么正则表达式?哪里失败了?
-
@XinQianChang'ang 让你的代码“尽可能好”的部分过程是通过构建一个使用定界符的解析器和一个使用正则表达式的解析器并比较结果来探索这样的案例。如果您还没有比较这两种情况,您的“我认为正则表达式更快、更准确”理论的基础是什么?