【问题标题】:Regular expressions in CSV database exportCSV 数据库导出中的正则表达式
【发布时间】:2015-05-05 13:21:20
【问题描述】:

我目前正在导出和修改 2011 年以来的数据库,以使用文件的物理路径。我正在尝试将搜索与正则表达式一起使用(我正在使用 Notepad++ 编辑 CSV 导出),但是,我遇到了问题,因为它找不到我要搜索的内容。这是我的数据库的一部分:

"1","blahblah","description","68 KB","2011-02-12 17:19:17","0000-00-00 00:00:00","2011-02-12_www_website_pl_filename.rar","x","x","1720","59","3612","1"
"2","blahblahb","description","146.25 KB","2011-02-13 00:13:06","0000-00-00 00:00:00","2011-04-19_www_website_pl_something.rar","x","x","2201","59","3613","1"

我想找到的是这部分:

"2011-04-19_www_website_pl_filename.rar"

并用这样的东西替换它:

"/home/public_html/website/files/2011-04-19_www_website_pl_filename.rar"

所以我试图找到它作为一个正则表达式:

"[2011].*[_www_website_pl_].*"

不幸的是,它不起作用 - 这个表达式几乎可以找到所有的行。它出什么问题了?我应该在“替换为”窗口中写什么以便它只替换路径的开头?

【问题讨论】:

  • [2011][_www_website_pl_] 建议您从阅读正则表达式教程开始。

标签: regex


【解决方案1】:

你可以使用以下来匹配:

(?<=")(2011[^"]*?_www_website_pl_.*?)(?=")

并替换为

/home/public_html/website/files/\1

【讨论】:

  • 谢谢,它符合需要。但是,更换部件不起作用。它只是用 /home/public_html/website/files/ 替换它,而不复制其余部分。正如我所假设的, \0 是匹配的 - 这是正确的吗?我尝试只用 \0 (或 $0 或 $1 如果重要的话)替换它,并且在所有情况下它都用空格替换它。对不起,我缺乏知识,但这是我第一次使用正则表达式。
猜你喜欢
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多