Python正则表达式匹配-在标点符号上进行分割,但忽略某些单词

时间:2019-01-16 21:16:30

标签: python regex

假设我有以下一句话,

  

嗨,我叫谁博士。我爱上了鱼指和蛋c!

我试图使用正则表达式捕获标点符号(撇号和连字符除外),但我也想忽略某些单词。例如,我无视Dr.,所以我不想捕获。

一词

理想情况下,正则表达式应捕获括号之间的文本:

  

Hi(,)my()name()是()Dr.()谁(。) )

请注意,我有一个包含“ Dr.”之类的单词的Python列表。我想忽略的我还使用string.punctuation来获取要在正则表达式中使用的标点符号列表。我曾尝试使用否定的前瞻,但仍然遇到了“。”。在博士的任何帮助下表示赞赏!

1 个答案:

答案 0 :(得分:0)

您可以首先丢弃所有停用词(例如“ Dr.”),然后丢弃所有字母(和数字)。

import re

text = "Hi, my name is Dr. Who. I'm in love with fish-fingers and custard !!"
tmp = re.sub(r'[Dr.|Prof.]', '', text)
print(re.sub('[a-zA-Z0-9]*', '', tmp))

那行得通吗?

它将打印:

,      '    -   !!

输出正在捕获您问题中括号之间的文本。