2013-12-17 5 views
0

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

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

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

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

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

+1

Что ты точно пытаясь сделать? Не могли бы вы предоставить образцы данных и то, что вы хотите, чтобы стать после замены? – Jerry

+0

Попробуйте '(. [A-Z] [a-z] [a-z])', затем используйте вашу замену '\ t \ 1'. – sln

ответ

2

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

  1. Найти:

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

    \t 
    
  3. Выбрать радиокнопку "Regular Expres Сьон»

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

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

E34E!John Doe 
123$#@ERFrank 

To:

E34E! John Doe 
123$#@ER Frank 

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

  • Поиск: ^(.+?)([A-Z][a-z])

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

+0

Теперь я немного понимаю ваше выражение, я просто новичок, и это выражение работает отлично. Большое вам спасибо, и я очень его ценю – Chesterkallas

Смежные вопросы