我想清除一些使用python和regex从键盘记录的输入。
特别是在使用退格键来纠正错误时。
范例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不支持递归正则表达式。如果可以使用其他语言,则可以尝试以下操作:
.(?R)?<BckSp>
另请:https://regex101.com/r/OirPNn/1
关于python - 匹配字符重复次数与捕获组的重复次数相同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41343362/