我想清除一些使用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/

10-14 17:54
查看更多