我正在尝试为此列表编写正则表达式:
data= ["Fred is Deputy Manager. He is working for MNC.", "Rita is another employee in AC Corp."]
我想删除所有以大写字母开头的单词,但不应该检查每个句子的第一个单词,也就是说,不应该检查Fred、He和Rita
输出应该是
Output-["Fred is. He is working for.", "Rita is another employee in."]
我试图寻找解决方案,但找不到任何相关代码。 任何帮助都将不胜感激
谢谢
您需要查找并删除所有不在标点符号后面的大写单词,然后查找并删除尾随空格(此解决方案不是最干净的,但它可以工作)。列表理解在这里也很有用
首先,让我为Python3的正则表达式文档的无用性道歉。回答这个问题的所有信息在技术上都是可以找到的,但是你已经需要知道一些关于
re
如何工作才能理解它。话虽如此,希望这能帮你一把:简单的回答
以下是一些您可以尝试的代码:
基本上,这将编译一个正则表达式,它将匹配不在句点之后的大写单词:
(?<![.])
->;如果前面有句点,则不匹配[ ][A-Z][A-z]*
->;任何大写单词(具有前导空格,确保从不匹配字符串中的第一个单词)然后,它将该正则表达式应用于列表中的每个字符串,并用空字符串替换匹配项:
""
一些限制
如果字符串中有双空格或其他空格字符(如制表符或回车符),则会破坏这一点。您可以改为使用以下方法解决此问题:
其中
\s+
将匹配一个或多个空白字符而且,如果你的弦有一个空格,这也会打破这个。您可以使用以下方法解决此问题:
从字符串中删除前导或尾随空白字符
相关问题 更多 >
编程相关推荐