2015-09-04 5 views
0

Мне регулярно нужно обрабатывать большие списки пользовательских данных для наших маркетинговых писем. Я получаю много CSV с полным именем и адресом электронной почты и должен разделить эти полные имена на отдельные значения имени и фамилии. например:CSV - сплит полное имя на имя и фамилию

John Smith,[email protected] 

Jane E Smith,[email protected] 

Jeff B. SMith,[email protected] 

Joel K smith,[email protected] 

Mary Jane Smith,[email protected] 

Во всех этих случаях, я хочу Smith идти в последнем столбце имя и все остальное, в первом столбце имя. В принципе, я хотел бы найти последнее пространство перед первой запятой и заменить это последнее запятое запятой. Но, я теряюсь на том, как это сделать, поэтому любые предложения будут очень признательны. Кроме того, я использую BBEdit для обработки текстового файла.

+0

Дон» t sp освещенные имена! – Mathletics

+0

Моя любимая статья: [Программисты Falsenesss Believe About Names] (http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names) – Sam

ответ

0

Попробуйте следующее регулярное выражение:

(.*?) (\b\w*\b)(,[^,]*$) 

и замена:

$1,$2$3 

DEMO

После подстановки данных будет выглядеть следующим образом:

John,Smith,[email protected] 

Jane E,Smith,[email protected] 

Jeff B.,SMith,[email protected] 

Joel K,smith,[email protected] 

Mary Jane,Smith,[email protected] 
+0

Возможно, вы можете удалить последнее пространство из первое поле;) – mayo

+0

@mayo удален :) –