我需要一种优化方式来替换字符串中以'/'开头的所有尾随字符。
例如:
mytext = "this is my/string"
我想要一个像这样的结果
mytext = "this is my/text"
只有'/'之后的字符串必须被替换,并且必须以优化的方式完成。谁能为我找到解决方案?
答案 0 :(得分:2)
我不确定你的意思是优化但是我会这样做:
>>> import re
>>> mytext = "this is my/string"
>>> re.sub('/.*','/text',mytext)
'this is my/text'
答案 1 :(得分:1)
这似乎是最快的:
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
答案 2 :(得分:0)
Reg.exp。很慢,因为你需要(第一个?)/
字符之后的所有文本,最好的方法是:
mytext[:mytext.index('/')+1] + 'the replacement text'
如果您没有“/”,则会失败。
答案 3 :(得分:0)
不确定它有多快,也没有错误检查,但我会找到斜杠并组合字符串。
s = 'this is my/string'
result = s[:s.find('/')+1]+'text'