正则表达式将段落拆分为句子但跳过前缀标题

时间:2014-08-07 12:43:59

标签: c# regex split ignore prefix

我需要将以下段落拆分为句子但是忽略在使用诸如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+"会成功地分割句子,但也会分裂像约翰里先生这样的单词,这是我想要避免的。

澄清此问题的正则表达式声明非常有用:)

谢谢

1 个答案:

答案 0 :(得分:1)

这很简单,使用负面的外观:

拆分以下正则表达式:

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

这将匹配前面没有MrMrs的句点。它还包括以下空格。

如果您也想忽略缩写,可以使用:

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

这将忽略以单个大写字母开头的任何句号。