2012-03-13 6 views
0

Я пытаюсь найти способ поиска/замены адресов электронной почты в CSV-файле (один столбец) с первыми 10 символами перед @ символ. Пример файла CSV будет:Regex - найти первые # символов перед определенным символом (например, функция LEFT в Excel)

PrimarySmtpAddress 
[email protected] 
[email protected] 
[email protected] 
[email protected] 

Мой желаемый результат будет:

PrimarySmtpAddress 
UserA 
UserB 
UserAlonge 
UserBlonge 

я до сих пор нашел, как просто избавиться от @ и все, что следует, выполнив:

находка: (.*)@.* заменить: \1

Я надеюсь, что я могу добавить что-то после того, как \1, который указывает только на замену первым 10 символами того, что содержится в \1.

Любые идеи кто-нибудь?

ответ

0

Попробуйте сделать свое регулярное выражение (.{1,10})@.* и заменить на \1. Значение {1,10} означает «один-десять» ..

В зависимости от инструмента, который вы используете для замены, он может попытаться соответствовать всей строке - в этом случае вы можете использовать ^.*?(.{1,10})@.*$.

+0

Большое спасибо за быстрый ответ. Используя Notepad ++ с выбранным регулярным выражением, ни один из них не обнаружит ни одного из моих адресов электронной почты. Может быть, Notepad ++ виноват? –

+0

Ох. Regex в Notepad ++ - это единственное, что мне не нравится в этом - это отстой. Там нет оператора '{n, m}' и, следовательно, нет способа делать то, что вы хотите (с регулярным выражением). [Справочное руководство по Notepad ++] (http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Regular_Expressions). –