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

1

Я работаю с таким текстом, как:

Graham, Mckenna -- ut    Voluptatem ipsam et at.Marvin, Garfield -- non    Facere et necessitatibus animi. McLaughlin, Mariah -- consequatur Eveniet temporibus ducimus amet eaque. Lang, Agustina -- pariatur

Как видите, действительные английские имена разделяются запятой и пробелом. Я ищу шаблон регулярного выражения для извлечения такой подстроки. Comma должна быть включена в подстроку, но не в конечное пустое пространство. Мне еще не удалась найти правильную модель.

мой код в С# выглядит так:

var value = reader.ReadLine();
var regex = new Regex(@"[A-Z]\w+,(?=\s)");
var match = regex.Match(value);
  • 0
    Ну, так как вам не повезло с правильным шаблоном, возможно, покажите, что вы пробовали.
  • 0
    Сколько частей может иметь имя? 1 или больше, 2 или больше, всегда 2?
Показать ещё 1 комментарий
Теги:

2 ответа

2
Лучший ответ

Если вы пытаетесь сопоставить имена перед запятой и после запятой, вы можете использовать следующее.

var rgx = new Regex(@"[A-Z][a-zA-Z]+, *[A-Z][a-zA-Z]+");

Или вы можете упростить шаблон в следующем случае:

var rgx = new Regex(@"(?i)[a-z]+, *[a-z]+");

Идеальная демонстрация

  • 0
    Оно работает. благодарю вас
0

Если всегда есть ровно 2 части имени:

/[a-z]+, [a-z]+/i

См. Демонстрацию с использованием ввода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню