【发布时间】:2014-12-09 00:57:23
【问题描述】:
我创建了一个正则表达式,可以提取包含匹配单词的句子。
[^.|?|!]*\<friends\>[^.|!|?]*[\"!?:\.]
但不适用于句子中有Mr./Mrs./Dr.等的情况。
例如:
The adventures are great. I don't know whether you know that Dr. Watson and Mr. Holmes are good friends, Ms. Adler.
我想要的输出是:
I don't know whether you know that Dr. Watson and Mr. Holmes are good friends, Ms. Adler.
如何做到这一点?
【问题讨论】:
-
在 Debuggex 上查看您的正则表达式,我不确定您是否真的知道它匹配的是什么:debuggex.com/r/YMtOObNo59HHAv8c
-
例外太多了(不只是标题,还有很多缩写),除非你把它们列出来,否则很难找到一个通用的规则......
-
另外,您为什么要查找
<friends>而您的输入不包含<和>字符?您使用的是哪种语言? -
@sp00m \
允许搜索带有连字符的单词,我组成一个:friends-like -
@DanEng 对不起?我不明白,你有一个预处理器来转换你的正则表达式吗?正则表达式中的
\<friends\>将逐字匹配字符串"<friends>"...
标签: regex