python - 如何在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 ']
有没有人有任何想法?
解决方案
我会用
re.findall(r'^.*?(?:$|#)', text, re.M)
匹配您要保留的所有子字符串,并且
re.findall(r'(?<=#).*$', text, re.M)
匹配您要拒绝的所有子字符串。
两者都使用MULTILINE
标志和行尾$
或#
字符作为边界。
当一行中有多个#
s 时要小心。
推荐阅读
- symfony - 如何在 showMapper 中更新对象中的字段
- arangodb - 如何禁用 Web 界面?
- python - python web服务器基准测试低于预期
- javascript - 这是否可能作为 Javascript 中的 XSS 漏洞利用
- r - 如何获取数字列表并将它们分成 2 类?
- stomp - 如果 TCP 已经保证了帧的传递,为什么 STOMP 协议有 ACK 和 NACK?
- c# - 如何阻止用户切换桌面
- python - AES OCB 加密无法正常工作的示例
- c++ - 有人可以解释特殊的 std::function 模板参数列表语法(这个奇怪的 Type(Types...))吗?
- javascript - Python vs Javascript MD5 对于大数字不同