python - 正则表达式替换所有除非行尾($ in [] issue)

标签 python regex

假设我有一个字符串:

s = "4n5n6n"

我想创建一个正则表达式,删除除数字和字符串末尾的 n 之外的所有内容。所以最终的解决方案应该是这样的:

s = "456n"

如果我像这样使用正则表达式:

re.sub(r'[^n$\d]', "", s)

$ 放在方括号内似乎失去了意义。有什么解决办法?

最佳答案

你可以这样使用:

re.sub(r'[^n\d]|n(?!$)', "", s)

regex101 demo

这将匹配任何非数字和除 n 以外的任何字符,或任何不在末尾的 n(表示“不在末尾”通过带有 $ 的负前瞻 (?! ... )

关于python - 正则表达式替换所有除非行尾($ in [] issue),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20859816/

相关文章:

python - 关于未解析的属性引用的 Pycharm 视觉警告

python - 如何为经过身份验证的用户添加登录后信息?

javascript - 如何使用正则表达式查找对象成员名称

javascript - 正则表达式 - 有六位数字,以 0、1 或 2 开头

python - 从字符串中删除单词,但顺序很重要

python pygame鼠标事件不工作并且不引发错误

python - 哪个 DJango 身份验证后端

python - 避免日志溢出(cosh(x))

regex - Bash Regex 如何检索值

regex - 是否有一个简单的正则表达式来将数字与 x 进行比较?