регулярное выражение для анализа имени и фамилии - PullRequest
1 голос
/ 13 мая 2011

Я анализирую некоторые журналы, и в некоторых случаях имя пользователя отображается как FirstName.LastName, в других случаях оно отображается как FLastName. Мне просто интересно, можно ли разобрать оба имени в FLastName. Например, Joe.Doe и JDoe должны оба создать JDoe. Спасибо.

Ответы [ 3 ]

1 голос
/ 13 мая 2011

Это будет сделано:

(.)(?:[^\.]*\.)(.+)$

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

$1$2

Но это зависит от используемого вами инструмента регулярных выражений.

Попробуйте его на RegExr (спасибо, Stema, я нене знаю об этом сайте).

0 голосов
/ 13 мая 2011

Мое решение, (но два других также будут работать)

^([a-zA-Z])(?:.*\.)?(.*)$

См. Здесь на Regexr

Это соответствует первой букве, затемследующая часть, пока точка не является обязательной.Наконец соответствует строка до конца.Первая буква в группе 1, а LastName в группе 2.

Поэтому замените на $ 1 $ 2 (или \ 1 \ 2, в зависимости от вашего механизма регулярных выражений)

0 голосов
/ 13 мая 2011

Не уверен, какую платформу regex вы используете, но это будет работать в sed:

sed 's/\([a-z[A-Z]\).*\.\(.*\)$/\1\2/'

Для строк "FirstName.LastName и FLastName это дает вывод:

FLastName
...