регулярное выражение для замены на вкладку

У меня есть большая база данных около 80 тыс. данных. Существует ссылочный номер клиента, за которым следует имя клиента. Проблема в том, что идентификационный номер клиента может содержать буквы, специальные символы и так далее. Но символы будут только в верхнем регистре, и это не будет более двух символов и никогда не будет строчных букв.

Итак, я пытаюсь использовать регулярное выражение для поиска прописных букв, за которыми следуют две строчные буквы.

Мне удалось это сделать, используя выражение

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

Но я не знаю, как указать табуляцию, так как замена ее на \t \1 удаляет первые три символа. Пожалуйста помоги. а также, пожалуйста, объясните мне, как это работает.


person Chesterkallas    schedule 17.12.2013    source источник
comment
Что именно вы пытаетесь сделать? Не могли бы вы предоставить образцы данных и то, что вы хотите, чтобы они стали после замены?   -  person Jerry    schedule 17.12.2013
comment
Попробуйте (.[A-Z][a-z][a-z]), затем используйте замену \t \1.   -  person    schedule 17.12.2013


Ответы (1)


Если я правильно понял ваш вопрос, вы хотите отделить номер ссылки от имени. Если это так, в Notepad++ перейдите в меню Search > Replace (сочетание клавиш CTRL+H) и выполните следующие действия:

  1. Найти то, что:

    ^.+?\K(?=[A-Z][a-z])
    
  2. Заменить:

    \t
    
  3. Выберите переключатель «Регулярное выражение»

  4. Затем нажмите «Заменить все».

Это преобразует следующий гипотетический пример:

E34E!John Doe
123$#@ERFrank

To:

E34E!    John Doe
123$#@ER    Frank

Вы можете протестировать его в Интернете по адресу regex101, где также можно найти аналитическое объяснение. Если честно, мой подход немного сложен для человека, который мало что знает о регулярных выражениях. Вы можете использовать группы захвата, которые дадут точно такие же результаты и их будет легче понять, например:

  • Найти: ^(.+?)([A-Z][a-z])

  • Заменить: $1\t$2

person psxls    schedule 17.12.2013
comment
Теперь я немного понимаю ваше выражение, я просто новичок, и это выражение сработало отлично. Большое спасибо, и я очень ценю это - person Chesterkallas; 18.12.2013