我需要一個優化的方法來替換從字符串中的'/'開始的所有結尾字符。Python:替換從一個字符串開始的字符串
例如:
mytext = "this is my/string"
我只希望後面的字符串這樣
mytext = "this is my/text"
結果「/」必須更換,而且必須以最優化的方式來完成。任何人都可以找到我的解決方案?
我需要一個優化的方法來替換從字符串中的'/'開始的所有結尾字符。Python:替換從一個字符串開始的字符串
例如:
mytext = "this is my/string"
我只希望後面的字符串這樣
mytext = "this is my/text"
結果「/」必須更換,而且必須以最優化的方式來完成。任何人都可以找到我的解決方案?
這似乎是最快的:
mytext = "this is my/string"
mytext = s[:s.rindex('/')] + '/text'
我測試:
>>> s = "this is my/string"
>>> pattern = re.compile('/.*$')
>>> %timeit pattern.sub('/text', s)
1000000 loops, best of 3: 730 ns per loop
>>> %timeit s[:s.rindex('/')] + '/text'
1000000 loops, best of 3: 284 ns per loop
>>> %timeit s.rsplit('/', 1)[0] + '/text'
1000000 loops, best of 3: 321 ns per loop
我不知道你是什麼意思優化,但我會做到:
>>> import re
>>> mytext = "this is my/string"
>>> re.sub('/.*','/text',mytext)
'this is my/text'
Reg.exp。是緩慢的,因爲你需要的(?第一)/
字符後的所有文字,做到這一點的最好辦法是:
mytext[:mytext.index('/')+1] + 'the replacement text'
如果你沒有「/」然而,這將失敗。
不知道它有多快,也沒有錯誤檢查,但我會找到斜槓和組合字符串。
s = 'this is my/string'
result = s[:s.find('/')+1]+'text'
謝謝@pavel Anossov :) – upv