Python:从字符开始替换字符串

时间:2013-02-05 11:17:22

标签: python string replace

我需要一种优化方式来替换字符串中以'/'开头的所有尾随字符。

例如:

mytext = "this is my/string"

我想要一个像这样的结果

mytext = "this is my/text"

只有'/'之后的字符串必须被替换,并且必须以优化的方式完成。谁能为我找到解决方案?

4 个答案:

答案 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'