【发布时间】:2016-12-27 10:27:14
【问题描述】:
我想用 python 和正则表达式清理从我的键盘记录的一些输入。 尤其是在使用退格键修复错误时。
示例 1:
[in]: 'Helloo<BckSp> world'
[out]: 'Hello world'
这可以通过
re.sub(r'.<BckSp>', '', 'Helloo<BckSp> world')
示例 2:
但是,当我有几个退格时,我不知道如何删除之前完全相同数量的字符:
[in]: 'Helllo<BckSp><BckSp>o world'
[out]: 'Hello world'
(这里我想去掉两个退格前的'l'和'o')。
我可以简单地使用re.sub(r'[^>]<BckSp>', '', line) 几次,直到没有<BckSp> 离开,但我想找到一个更优雅/更快的解决方案。
有人知道怎么做吗?
【问题讨论】:
-
我认为你不能指望正则表达式,只是按照建议循环遍历你的正则表达式是最好的方法
-
使用正则表达式是一项要求(即您正在学习正则表达式)还是只是您提出的解决方案?
-
是的,我尝试使用正则表达式来学习,因为我还不熟悉它。
-
请记住,虽然可能有一些只有正则表达式的解决方案没有循环,但正则表达式不是首选,在这种情况下,您最好使用更简单、更易于理解的解决方案.
-
感谢您的建议,我会记住这一点,然后可能不会在这种情况下使用正则表达式:)
标签: python regex backreference