Python 正则表达式条件:除'外的字母;crfl&x27;在单词或字符串的末尾是否删除?
我试过:Python 正则表达式条件:除'外的字母;crfl&x27;在单词或字符串的末尾是否删除?,python,regex,Python,Regex,我试过: 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 只需在否定列表中包含,。请参阅演示 或者干脆 \w(?<![crlf])
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
只需在否定列表中包含,
。请参阅演示
或者干脆
\w(?<![crlf])\b
\w(?)?
见演示
[^crfl]
匹配
,,
,所有不是c
,r
,f
,l
。你只处理ASCII字母吗?顺便说一句,\Z
不受Pythonre
支持。我现在明白了。不,我正在使用Unicode,法语。不幸的是,re
不适用于Un我编码得很好。你能使用PyPiregex
模块吗?哦,我看到Pythonre
不支持\z
,但支持\z
:)谢谢,我将查看PyPi regex。使用这种方法,列表应该扩展为更多字符。法语字母regex是[a-zA-Zäèèèèèèèèèèèèèèèèèèèèèèèèèèè。因此,答案是(?![crfl])[a-zA-Zäèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèè232@WiktorStribiżew这应该可以用u
flag帮他解决问题,但是\w
匹配数字和下划线。@WiktorStribiżew Easy fix…只需添加到Lookbehind中的字符类,我认为应该重新打开。如果您同意,请单击“重新打开”。
\w(?<![crlf])\b