正则表达式匹配结束标点符号,考虑缩写

时间:2016-02-18 19:04:29

标签: .net regex

我正在尝试构造一个与句子中的标点字符匹配的正则表达式。我希望这个正则表达式避免匹配属于缩写的句点。 例句:

To get more info, help, etc. read through this manual.

在这句话中,正则表达式应该匹配除“等”之外的所有逗号和句点。一。 为了达到这个目的,我有一个常用的英文缩写列表和我的正则表达式的当前状态(为了清楚起见,我缩短了缩写列表):

(?i)((?<!a\.d|a\.m|abbr|adj|adv|al|etc)(\.)|[,;:!?])$

此正则表达式针对每个单词运行,该句子先前由空格分隔。 这种方法的问题在于实际上并没有将缩写省略为“整体”,事实上,“手动”之后的点不匹配,因为它以缩写列表中的“al”结尾。 只有当整个单词不在缩写列表中时,如何才能修改表达式以匹配结束点?

1 个答案:

答案 0 :(得分:3)

插入\ b将仅在字边界上产生匹配。

例如,(?i)((?<!((\b)(a\.d|a\.m|abbr|adj|adv|al|etc)))(\.)|[,;:!?])$