替换字符串中#word#标记的单词

时间:2014-06-01 20:49:56

标签: python string replace

我想在两个#标记之间搜索和替换单词。

文字是随机的(用户添加)。

示例:

text = "hello this #word1# a it #word2# thanks!"

我需要在#(word1和word2)之间剪切两个单词,然后将单词更改为标题大小写 - .title()

期望的输出:

"hello this #Word1# a it #Word2# thanks!"

2 个答案:

答案 0 :(得分:0)

s = "hello this #word1# a it #word2# thanks!".split()
result = ' '.join([w[1:-1].title() if w[0] == '#' else w for w in s])

给出

'hello this Word1 a it Word2 thanks!'

s = "hello this #word1# a it #word2# thanks!".split()
result = ' '.join([w.title() if w[0] == '#' else w for w in s])    

给出

'hello this #Word1# a it #Word2# thanks!'

答案 1 :(得分:0)

您可以使用正则表达式执行此操作:

import re

text = 'hello this #word1# a it #word2# thanks!'
print re.sub('#(\w+)#', lambda m:m.group(1).title(), text)

输出:

  

你好这个Word1一个Word2谢谢!

修改

如果要保留边界#字符,请使用非捕获表达式:

print re.sub('(?<=#)(\w+)(?=#)', lambda m:m.group(1).title(), text)

输出:

  

你好这个#Word1#a it#Word2#thanks!