Regex Разделить абзац на предложения, но пропустить заголовки префиксов

Мне нужно разделить следующий абзац на предложения, НО игнорировать разделение в точках, где используется префикс заголовков, таких как Mr. Mrs. Ms.

string text = "Joffrey died on March 25, 1988 of AIDS at the age of 57 in New York City, New York. He is buried at Cathedral of Saint John the Divine. Mr.Joffrey was inducted into the National Museum of Dance's Mr. & Mrs. Cornelius Vanderbilt Whitney Hall of Fame in 2000."

Обычный оператор регулярного выражения, такой как: @"(?<=[\.!\?])\s+", успешно разделил бы предложения, но также разделил бы вместе с ним слова, такие как Mr.Joffrey, чего я хочу избежать.

Оператор регулярного выражения для прояснения этой проблемы был бы очень полезен :)

Спасибо


person WyldeBoyy    schedule 07.08.2014    source источник
comment
А что насчет текстов с сокращенными инициалами, вроде Gary M. Larson, автором знаменитого комикса был S.O.L. вчера, когда корова решила врезаться в его машину.   -  person Lasse V. Karlsen    schedule 07.08.2014
comment
@LasseV.Karlsen Ответ Лукаса Тржесневского также решает эту проблему :)   -  person WyldeBoyy    schedule 07.08.2014


Ответы (1)


Это достаточно просто, используя отрицательный взгляд назад:

Разделить на следующее регулярное выражение:

(?<!Mr?s?)\.\s*

Это будет соответствовать периодам, которым не предшествуют Mr или Mrs. Он также будет включать следующие пробелы.

Если вы хотите также игнорировать инициалы, вы можете использовать это:

(?<!Mr?s?|\b[A-Z])\.\s*

При этом будут игнорироваться любые точки, которым предшествует одна заглавная буква.

person Lucas Trzesniewski    schedule 07.08.2014
comment
Четкий ответ. Сработало :) Спасибо! - person WyldeBoyy; 07.08.2014