Регулярное выражение для получения фамилии / имени из текста

#c# #regex

#c# #регулярное выражение

Вопрос:

У меня есть текстовый файл типа :

 67890                    LastName, FirstName                                                                          
09/10/2020 18:18:01                               Page 1 of 1
DOB    01/01/1982     38 years         Male
..........
  

Я бы извлек LastName, First Name отдельно, затем с помощью 2
регулярных выражений для захвата:

  • LastName как все символы перед первой запятой «,» удаление пробелов перед ним.
  • FirstName как все символы после первой запятой «,» удаление пробелов после него.

Я выполнил тест для LastName с помощью (C #):

 ^.*?(?=,)
  

но захватывает все перед запятой, а не только фамилию.

Также код :

 (?<=^.{20})([^,]) 
  

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

Я использую тестовый сайт :

http://regexstorm.net/tester

Большое спасибо за помощь!

Комментарии:

1.1. S (?=,) , 2. (?<=,s*)S ?

2. b([^,s] ),s(. ?)b поместил бы фамилию в группу захвата # 1, а firstname — в # 2. regex101.com/r/m88RbW/1

3. пожалуйста, выведите больше входных данных

Ответ №1:

<a rel="noreferrer noopener nofollow" href="https:///regexstorm.net/tester?p=(?Регулярное выражение для извлечения фамилии:

 (?<=^[^,]*?s )S (?=,)
  

<a rel="noreferrer noopener nofollow" href="https:///regexstorm.net/tester?p=(?Регулярное выражение для извлечения имени:

 (?<=,s*)S 
  

Комментарии:

1. Спасибо, решение идеальное !!