我想在两个#
标记之间搜索和替换单词。
文字是随机的(用户添加)。
示例:
text = "hello this #word1# a it #word2# thanks!"
我需要在#
(word1和word2)之间剪切两个单词,然后将单词更改为标题大小写 - .title()
。
期望的输出:
"hello this #Word1# a it #Word2# thanks!"
答案 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!