在Notepad ++中删除列表的特定部分

时间:2016-06-10 00:00:02

标签: notepad++

我有一个包含以下格式的列表:

companyname,companyaddress,companytelephone

这是500k行代码,具有相同的结构。

我希望最终结果只是

companyaddress,companytelephone

(删除'companyname,')。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

(snip)...你的答案是在搜索和替换中使用正则表达式选项。我假设你有一些结构化数据,即<name> delimiter1 <address> delimiter2 <phone>,而delimiter1是一个标签,然后:

search for: `^[^\t]+?\t`
replace with: [leave empty]

\ t ...代替标签

鉴于您的编辑 ,逗号空间为delimiter1,一次性完成解决方案将很困难,因为您需要了解包含的公司名称逗号。例如,任何与Inc.,LLC,LLP或合伙企业的结尾,例如“Curly,Larry&amp; Moe,LLP”。因此,我认为我会进行多次搜索替换,直观地检查每个搜索之间的数据。

(1) Find from start of line <name> delimiter1 <number>: ^(.+?), (\d)
Replace with # <name> tab <number>: #$1\t$2

查看是否有与(1)中的替换模式不同的记录。如果是少数,请手动编辑用标签替换这些逗号空间。如果很多,你将不得不做更多的搜索和替换。如果没有异常值,请执行以下操作:

(last) Find from start of line through to the first tab: ^[^\t]\t
Replace with nothing: [leave empty]

如果你的delimiter1不是逗号空间而是引用逗号空格引用,那么请使用正则表达式搜索:^.+?", "并替换为空。完成!

非分隔符记录的替代解决方案:

如果数据依赖于字符长度,即<name> spaces to the 30th character <address> spaces to the 100th character <phone>,则:

search for: `^(.){30}`
replace with: [leave empty]

首先尝试样本副本。祝你好运。