我试过了:
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/