首页 > 解决方案 > 如何在python中删除句子中井号(#)后面的句子

问题描述

我想删除在句子中找到哈希后的句子。这个过程应该发生在所有带有井号的行上,例如:

abcde#efg hijk

aaaabbbcc

ghij#kloa.bcd

它看起来像这样

abcde#

aaaabbbcc

吉吉#

我用 制作了下面的代码re.findall,但是当它找到一个空白区域时,它不会删除其余部分,请看:

text = 'abcde#efg hijk \n\n ghij#kloa.bcd'    
result=re.findall(r'#(\w+.\w+\s+)', text)  
>>['efg hijk \n\n ']

有没有人有任何想法?

标签: pythonregex

解决方案


我会用

re.findall(r'^.*?(?:$|#)', text, re.M)

匹配您要保留的所有子字符串,并且

re.findall(r'(?<=#).*$', text, re.M)

匹配您要拒绝的所有子字符串。

两者都使用MULTILINE标志和行尾$#字符作为边界。

当一行中有多个#s 时要小心。


推荐阅读