Python正则表达式匹配标点符号拆分,但忽略某些单词

2024-04-20 10:13:10 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有下面的句子

Hi, my name is Dr. Who. I'm in love with fish-fingers and custard !!

我试图用正则表达式捕捉标点符号(撇号和连字符除外),但我也想忽略某些单词。例如,我忽略了Dr.,所以我不想捕捉到。用一句话来说

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

Hi(, )my( )name( )is( )Dr.( )Who(. )I'm( )in( )love( )with( )fish-fingers( )and( )custard( !!)

请注意,我有一个Python列表,其中包含我想忽略的“Dr.”之类的词。我还使用string.percentration获取要在正则表达式中使用的标点字符列表。我尝试过使用消极前瞻,但它仍然捕捉到Dr.中的“.”。感谢您的帮助


Tags: andnamein列表ismywithhi
1条回答
网友
1楼 · 发布于 2024-04-20 10:13:10

你可以先扔掉所有的停止词(如“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))

这样行吗

它将打印:

,      '    -   !!

输出是捕获问题中括号之间的文本

相关问题 更多 >