regex - Reg sub 重复字符不按顺序
问题描述
我想得到这样的东西:
输入:'abcad121'
输出:'abcd12'
我尝试使用正则表达式模式r'(.)(?=.*\1)'
,但这不是我需要的。
解决方案
您可以使用 PyPi 正则表达式模块来执行此操作,您可以使用该模块进行安装pip install regex
,然后使用:
import regex
print( regex.sub(r'(.)(?<=\1.*\1)', '', 'abcad121') )
请参阅Python 演示。参见正则表达式演示。这里的重点是先捕获一个char,然后在char的左边检查是否有这样的char一些0或多个char。
如果要使用re
,则需要先反转字符串,运行当前的正则表达式,然后反转生成的字符串:
import re
text = 'abcad121'
print( re.sub(r'(.)(?=.*\1)', '', text[::-1])[::-1] )
请参阅此 Python 演示。
推荐阅读
- python - 在 Python Pandas 中按计数查找多列的分组并将其附加到原始 DataFrame ,并给出带有字段名称的 keyError
- oracle - 代码绝对正确,但将 Sid 显示为无效标识符
- java - 当一个数据源事务失败时,Spring 无法回滚已提交的事务
- python - Tkinter 多帧:使用画布图像
- powerbi - DAX Measure 在过滤器表达式中使用来自不同相关表的多个列
- angular - 在 ngx-bootstrap 中将 HTML 添加到弹出窗口标题
- python - 计算二进制掩码数组上的封闭圆的半径
- swift - Alamofire 5 RequestInterceptor,如何重试请求而无需使用 .validate() 进行令牌刷新?
- java - Sftp 出站网关多个删除请求在第一个“找不到文件”问题后卡住
- r - R 如果两个条件都为真,改变一列的值