正则表达式替换为制表符

时间:2013-12-17 17:58:54

标签: regex notepad++

我拥有大约80k数据的大型数据库。 客户参考编号后跟客户名称。问题是客户 参考编号可能包含字母,特殊字符等。但是这些字符只是大写字母,不会超过两个字符而且不会小写 字母。

所以,我正在尝试使用正则表达式搜索大写,后跟两个小写 字母。

我成功地使用了表达式

(.)[(A-Z)][(a-z)][(a-z)]

但我不知道如何提供标签,因为用\t \1替换它会删除前三个标签 字符。请帮忙。并请解释我,它是如何工作的。

1 个答案:

答案 0 :(得分:2)

如果我正确理解了您的问题,您希望将参考号与名称分开。如果是这样,请在Notepad ++中转到Search> Replace菜单(快捷键 CTRL + H )并执行以下操作:

  1. 找到:

    ^.+?\K(?=[A-Z][a-z])
    
  2. 替换为:

    \t
    
  3. 选择单选按钮“正则表达式”

  4. 然后按“全部替换”

  5. 这将转换以下假设示例:

    E34E!John Doe
    123$#@ERFrank
    

    要:

    E34E!    John Doe
    123$#@ER    Frank
    

    您可以在regex101在线测试,在那里您还可以找到分析说明。说实话,对于一个对正则表达式知之甚少的人来说,我的方法有点复杂。您可以使用捕获组,它们将产生完全相同的结果,并且更容易理解,如下所示:

    • 查找:^(.+?)([A-Z][a-z])

    • 替换:$1\t$2