假设我有这样一个SMTP/IMAP/POP3登录URL:
smtp://foobar@example.com:abc@smtp.example.com:465
我想将密码(abc
在本例中是abc
)替换为一个固定数目的星(例如*****
),以便对用户隐藏它。在
到目前为止,我所尝试的大量使用了环视法:
^{pr2}$不幸的是,此正则表达式有几个问题,包括:
smtp://
冒号是匹配的)。我尝试了(?<=\w+://\w+:)
,但是lookbehind需要是自定义长度。也许我可以使用这些URL部分并用\1*****\2)
或类似的东西来替换?在@
和/或{请注意,我不能使用Python3(urlparse
模块)——而且我也不想使用第三方库,除非绝对必要。在
提前感谢你给我指出了正确的方向。在
使用此正则表达式:
我将}之间的字符串,中间没有{}或{}。在
^{pr2}$:
添加到[^@]
。因此,此正则表达式将匹配:
和{您可以使用^{} function (这在Python 2中也可用);}字符,请参见RFC 3986 Section 3.2.1):
.netloc
参数将包含用户名和密码(这两个都将被转义以不包含普通的:
或{演示:
^{pr2}$相关问题 更多 >
编程相关推荐