使用python使用regex表达式删除字符的重复实例

2024-05-15 14:22:49 发布

您现在位置:Python中文网/ 问答频道 /正文

这就是我所尝试的:

(.)(?=.*\1)

这将删除所有重复的实例,并只保留最后一个实例,即

远程登录->;lnet

我想要这个结果:

telnet->;电话

我该怎么做?我试着向后看,但据我所知,那只接受一个固定的长度。你知道吗

需要找个正则表达式。我知道没有regex可以实现这一点的其他方法


Tags: 实例方法gt远程telnetregex电话lnet
2条回答

一点“黑客”是。。。在向前看之前和之后反转字符串

import re

expr = r'telnetrer'[::-1]
pr = re.sub(r'(.)(?=.*\1)', r'', expr)[::-1]

print(pr)

输出

>>> telnr

纯正则表达式解决方案不是有可能。你呢但可以尝试使用回调函数。你知道吗

z=[]
def fun(matchobj):
    if matchobj.group(1) in z or matchobj.group(2) in z:
        return ''
    else:
        if matchobj.group(1):
             z.append(matchobj.group(1))
        else:
             z.append(matchobj.group(2))
        return z[-1]



x="telnet"
print re.sub(r"(.)(?=.*\1)|(.)", fun, x)

相关问题 更多 >