簡體   English   中英

Python正則表達式-替代

[英]Python Regular expression - Substitution

我寫了一個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或更大。 您希望匹配項至少出現一次../ 因此將*更改為+

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', '']

使用類似

url = "www.google.com";
line = "../../asyouwish.html"
link_part = line.split("/")

final_url = url + "/" + link_part[-1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM