【问题标题】:Need Regex to find "xxxx",,,,, of "yyyy",,,, and remove需要正则表达式来查找“yyyy”的“xxxx”,,,,, 并删除
【发布时间】:2017-09-20 19:37:03
【问题描述】:

我收到了一个非常大的 CSV 数据文件,我需要将其导入 MySQL 数据库。不幸的是,CSV 文件在每 50 行数据之后有一个文本页脚,如下所示:

0,,,,,," of 2,401",,,,
10,,,,,," of 2,401",,,,
999,,,,,," of 2,401",,,,
"1,000",,,,,," of 2,401",,,,
"2,396",,,,,," of 2,401",,,,

...etc

如您所见,当数字达到 1,000 时,模式会发生变化(它们开始使用双引号将开始的 Page # 括起来)。这超出了我对 RegEx 的理解。我需要一个正则表达式来识别所有这些行并删除它们。

【问题讨论】:

  • 你可能会逃脱: /[^,]+,,,,,," of 2,401",,,,$// 这很懒,但我怀疑一次就足够了固定器
  • ^("?)[\d,]+?\1,+"\s*of [\d,]+",+$^(?:[\d,]+|"[\d,]+"),+"\s*of [\d,]+",+$

标签: mysql regex csv text


【解决方案1】:

试试

    (\d+|"(\d+,\d+)+"),+" of (\d+|(\d+,\d+)+)",+(\n|$)

它将匹配以下所有情况:

0,,,,,," of 2,401",,,,

10,,,,,," of 2,401",,,,

999,,,,,," of 2,401",,,,

"1,000",,,,,," of 2,401",,,,

"2,396",,,,,," of 2,401",,,,

10,,,,,," of 2,401,000",,,,

"1,999,822",,,,,," of 2,401,000",,,,

【讨论】:

    猜你喜欢
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多