已关闭,此问题需要更focused,目前不接受回答。
**要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。
10小时前关闭。
Improve this question
我知道这对记事本来说很难,但我还是想问你是否可以帮助我!
我的工作需要把很多地址相同的人放在一起保存数据,我仍然每天手工做,但大量的让我想找到另一种方法。
例如:
John Stave
Amazon Inc
Michigan, Mi.
Elon Mask
Amazon Inc
Michigan, Mi.
得到这个:
John Stave, Elon Mask, Amazon Inc, Michigan, Mi.
也就是说我会把地址相同的人配对。
1条答案
按热度按时间hjzp0vay1#
我同意InSync:某种编程语言的脚本更适合于解决该任务。
如果你坚持手工操作,你可以使用regex
^(.+)(\n.+\n.+)([\s\S]*?)(.+)\2$
和替换$1, $4$2$3
。它会合并最近的两个具有相同公司和位置的块。你需要重复使用这个替换,直到合并任何东西。稍后,要将三行的块转换为由
,
分隔的单行,您可以使用(.+)\n(.+)\n(.+)(\n|$)
和替换字符串$1, $2, $3
。仅使用此替换一次。说明:
^(.+)(\n.+\n.+)([\s\S]*?)(.+)\2$
合并,可以看到here的演示:(.+)
匹配第一个合并块的名称行,将在替换字符串中被引用为$1
,(\n.+\n.+)
匹配合并区块的公司和位置区块,将在替换字符串中被引用为$2
,在稍后的backreference匹配中被引用为\2
,([\s\S]*?)
匹配任何内容,对于合并块不是结果的情况,将在替换字符串中被引用为$3
,(.+)
匹配第二个合并块的名称,将在替换字符串中引用为$4
,\2$
匹配第二个合并块的公司和位置,如果它与第一个完全相同。(.+)\n(.+)\n(.+)(\n|$)
匹配三个非空字符串的块,后跟换行符或文件结束。可以看到here的演示。此外,建议在What does this regex mean上查看这个不错的参考。