假设我有以下一句话,
嗨,我叫谁博士。我爱上了鱼指和蛋c!
我试图使用正则表达式捕获标点符号(撇号和连字符除外),但我也想忽略某些单词。例如,我无视Dr.,所以我不想捕获。
一词理想情况下,正则表达式应捕获括号之间的文本:
Hi(,)my()name()是()Dr.()谁(。) )
请注意,我有一个包含“ Dr.”之类的单词的Python列表。我想忽略的我还使用string.punctuation来获取要在正则表达式中使用的标点符号列表。我曾尝试使用否定的前瞻,但仍然遇到了“。”。在博士的任何帮助下表示赞赏!
答案 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))
那行得通吗?
它将打印:
, ' - !!
输出正在捕获您问题中括号之间的文本。