php - 我应该使用 Regex 来解析我的文件,还是有更好的方法?

标签 php regex mariadb

<分区>

我有一个超过 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 = 姓氏
  • 完整地址
  • 电话+手机
  • 电子邮件
  • 总目标
  • 总通过数
  • 冰上时间 + 板凳时间
  • 罚分

我无法理解正则表达式。我的另一个想法是解析每一行,然后解析每个逗号,然后解析每个管道,等等,但我认为这种方法比正则表达式慢而且不准确。我说得对吗?

最佳答案

i can't figure out the regular expression so my idea was to parse each line and then parse each comma, then each pipe then .... which i think is slow and less accurate then regexp

你为什么不去试试呢? 不要让这个影响你,要大胆。 一般来说,如果我是你,我会执行以下操作:

  1. 直接实现
  2. 测试一下
  3. 调整它

~2000 条记录并不算多,因此甚至可能不需要第三步(特别是如果这是只运行一次的迁移——那么如果需要 2 分钟呢?)。

顺便说一句:这是一般的编程建议,确实适用于很多问题。 Don't optimize prematurely .

关于php - 我应该使用 Regex 来解析我的文件,还是有更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8439699/

相关文章:

c# - 为什么 'http://dd ' 是一个有效的 URL?

java - 将txt文件写入mySQL数据库

php - HTACCESS 重写不适用于非 WP 目录

regex - 使用wp_rewrite规则获取id

python - 分割字符串上的多个匹配

database - MariaDB 可以支持的最大记录数

mysql - 使用触发器插入后添加列,错误 1422

php - 基于时间的复杂 MySQL 排序

php - 查询 MySQL 和 FROM_UNIXTIME Epoch

php - 使用Where语句显示计数为零的记录