1

私は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

私が間違っていた場所として誰かが私を助けることができます!!! ありがとう。

4

2 に答える 2

5

*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-or-more を削除するため、 の'../'後にスラッシュを追加する必要があります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', '']
于 2013-04-11T12:26:26.377 に答える
0

のようなものを使用します

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

final_url = url + "/" + link_part[-1]
于 2013-04-11T12:24:52.953 に答える