gpt4 book ai didi

Python 正则表达式 - 替换

转载 作者:太空宇宙 更新时间:2023-11-04 09:10:25 24 4
gpt4 key购买 nike

我写了一个python代码:

import re

url = "www.google.com";
line = "../../asyouwish.html"

num = re.sub(r'(\.\.\/)*', url, line)
print ("Final : ", num)

我的意图是用提供的 url 值替换 ../(任意次数)。但是我没有得到正确的输出。我想要的输出是“www.google.com/asyouwish.html”。

我得到的是:

Final :  www.google.comawww.google.comswww.google.comywww.google.comowww.google.
comuwww.google.comwwww.google.comiwww.google.comswww.google.comhwww.google.com.w
ww.google.comhwww.google.comtwww.google.commwww.google.comlwww.google.com

任何人都可以帮助我,因为我哪里出错了!!!谢谢。

最佳答案

* 表示出现 0 次或多次。 + 表示 1 或更多。您希望匹配项至少出现 1 次 ../。所以将 * 更改为 +:

import re

url = "www.google.com/"
line = "../../asyouwish.html"

num = re.sub(r'([.]{2}/)+', url, line)
print ("Final : ", num)

产量

('Final : ', 'www.google.com/asyouwish.html')

由于 re.sub 将删除 1 个或多个 '../',因此您需要在 url 之后添加一个正斜杠。在上面,我已经将正斜杠添加到 url 本身。如果 url 没有正斜杠,您可以(作为替代)添加它

num = re.sub(r'([.]{2}/)+', url+'/', line)

当您匹配 0 次或多次出现时,r'([.]{2}/)*'中的字符之间的每个位置line 与模式匹配,因此您可以在每个空隙处进行替换。

In [9]: x = 'www.google.comawww.google.comswww.google.comywww.google.comowww.google.comuwww.google.comwwww.google.comiwww.google.comswww.google.comhwww.google.com.www.google.comhwww.google.comtwww.google.commwww.google.comlwww.google.com'

In [13]: x.split('www.google.com')
Out[13]: ['', 'a', 's', 'y', 'o', 'u', 'w', 'i', 's', 'h', '.', 'h', 't', 'm', 'l', '']

关于Python 正则表达式 - 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15948665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com