我试过了:

re.sub(r'[^crfl](?=(\.|\,|\s|\Z))', '', val, flags=re.I)

在字符串上
car. cupid, fof bob lol. koc coc, cob

但结果是:
car cupi fof bo lol koc coc co

我不理解,为什么提前声明会删除逗号和点。

我想要的结果是:
car. cupi, fof bo lol. koc coc, co

最佳答案

[^crfl.,](?=(\.|\,|\s|\Z))

只需在.,中包括negation list即可。

https://regex101.com/r/yX8zV8/5

或简单地
\w(?<![crlf])\b

参见演示。

https://regex101.com/r/eB8xU8/1

关于python - 正则表达式条件: letters except 'crfl' at the end of the word or string are deleted?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35173116/

10-17 03:08