使用regEx转换.CSV数据?

时间:2013-07-10 09:37:13

标签: regex csv

我有一个包含以下数据的.CSV:

"http://iis.se/write-content/?submitted","The intro","<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus dictum lectus eget enim condimentum, eget bibendum libero porta. Suspendisse vestibulum libero nisl, quis tempus nisl semper in. Ut mi nisl, vehicula quis tristique ut, molestie et est. Donec auctor, ante eu venenatis aliquam, felis nisi pretium turpis, ut mattis dui orci et sem. Duis vitae accumsan velit. Sed tristique lacus nisl, vehicula congue turpis ultrices sed. In hac habitasse platea dictumst. Sed dictum scelerisque nibh non venenatis. In viverra eros non arcu pellentesque, nec pulvinar turpis placerat.</p> <p>Proin suscipit metus vitae nisi dignissim ullamcorper. Nullam eleifend tempor ligula, sit amet semper metus.</p><p>Proin bibendum bibendum suscipit. Cras pretium lectus sit amet urna interdum, in ultricies eros scelerisque. Pellentesque id condimentum libero. Aenean placerat orci a dictum pharetra. Pellentesque sagittis egestas gravida. Pellentesque suscipit mauris neque, quis auctor lacus blandit et. Curabitur a quam a velit condimentum tristique. Morbi volutpat pulvinar viverra. Duis cursus lectus ac sem dictum, eu tempor risus blandit. In accumsan arcu at lorem mattis lacinia. Vestibulum vitae mollis sem, nec commodo nunc. Donec vel ultricies nunc. Nam at sapien nec libero aliquam pharetra vitae eget leo.</p><p>Read more here <a href=""http://www.google.com"">here</a></p>","Thank you!"
"http://website.com/add/?submitted","The, nice, Second","<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus dictum lectus eget enim condimentum, eget bibendum libero porta. Suspendisse vestibulum libero nisl, quis tempus nisl semper in. Ut mi nisl, vehicula quis tristique ut, molestie et est. <a href=""http://www.altavista.com"">Donec auctor</a>, ante eu venenatis aliquam, felis nisi pretium turpis, ut mattis dui orci et sem. Duis vitae accumsan velit. Sed tristique lacus nisl, vehicula congue turpis ultrices sed. In hac habitasse platea dictumst. Sed dictum scelerisque nibh non venenatis. In viverra eros non arcu pellentesque, nec pulvinar turpis placerat.</p> <p>Proin suscipit metus vitae nisi dignissim ullamcorper. Nullam eleifend tempor ligula, sit amet semper metus.</p><p>Proin bibendum bibendum suscipit. Cras pretium lectus sit amet urna interdum, in ultricies eros scelerisque. Pellentesque id condimentum libero. Aenean placerat orci a dictum pharetra. Pellentesque sagittis egestas gravida. Pellentesque suscipit mauris neque, quis auctor lacus blandit et. Curabitur a quam a velit condimentum tristique. Morbi volutpat pulvinar viverra. Duis cursus lectus ac sem dictum, eu tempor risus blandit. In accumsan arcu at lorem mattis lacinia. Vestibulum vitae mollis sem, nec commodo nunc. Donec vel ultricies nunc. Nam at sapien nec libero aliquam pharetra vitae eget leo.</p>","Thank you!, even more!!!"

简单地说,

  • 在COL1中,我想删除顶级域名后的所有内容
  • 在COL2中,我想要逗号,空格成为连字符,但它可能不会在任何时候加倍连字符
  • COL1和COL2应合并为(输出)COL1
  • 在COL3中,除<a> </a>
  • 中包含的域名外,所有内容都应删除
  • COL4是不可触碰的

所以,在这种情况下,我希望输出变为:

"http://iis.se/the-intro","http://www.google.com","Thank you!"
"http://website.com/the-nice-second","http://www.altavista.com","Thank you!, even more!!!"

可能还是非常先进?

我在想用一个宏录制的Notepad ++中的一些RegEx替换。

1 个答案:

答案 0 :(得分:1)

首先,你应该开始尝试,即使它们失败了。它显示了你一直在尝试的东西,其他人可以指出你做错了什么,这样你就可以在将来做到正确。


您可以使用此系列替换(F表示查找,R表示替换,第二个替换为空):

F: (http://[^/]+/)[^"]+","([^"]+")
R: $1$2

F: "<[^"]+"
R:

F: ">[^<]+</
R: ,"

F: ,?\s(?=[^"]+",)
R: -

在较少的查找/替换中可能存在一些可能性,我没有探索所有可能性。请注意,正则表达式不处理替换字符大小写,因此您的实际最终产品将是:

"http://iis.se/The-intro","http://www.google.com","Thank you!"
"http://website.com/The-nice-Second","http://www.altavista.com","Thank you!, even more!!!"

与您想要的结果进行比较:

"http://iis.se/the-intro","http://www.google.com","Thank you!"
"http://website.com/the-nice-second","http://www.altavista.com","Thank you!, even more!!!"

要将它们转换为小写,您可以选择列并将它们转换为小写,如果链接都具有相同的字符长度(通过按住 Alt 然后选择文本,您可以垂直选择在notepad ++中并使用 Ctrl + U 将所有字符都变为小写。