我有一个包含以下格式的列表:
companyname,companyaddress,companytelephone
这是500k行代码,具有相同的结构。
我希望最终结果只是
companyaddress,companytelephone
(删除'companyname,')。我怎么能这样做?
答案 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]
首先尝试样本副本。祝你好运。