我想在两个#
标记之间搜索和替换单词。
文字是随机的(用户添加)。
example = 'hello this #word1# a it #word2# thanks!'
text = "hello this #word1# a it #word2# thanks!"
我需要在#
(word1和word2)之间剪切两个单词,并用大写字母替换第一个字母 - .title()
。
我有一个代码:
import re
text = 'hello this #word1# a it #word2# thanks!'
print re.sub('#(\w+)#', lambda m:m.group(1).title(), text)
输出:hello this Word1 a it Word2 thanks!
如何做到输出:hello this #Word1# a it #Word2# thanks!
答案 0 :(得分:3)
你的意思是这样吗?
>>> print re.sub('(#\w+#)', lambda m:m.group(1).title(), text)
hello this #Word1# a it #Word2# thanks!
答案 1 :(得分:3)
您可以使用lookahead and lookbehind断言:
>>> re.sub('(?<=#)(\w+)(?=#)', lambda m:m.group(1).title(), text)
hello this #Word1# a it #Word2# thanks!
答案 2 :(得分:2)
将#
添加到该功能。
import re
text = 'hello this #word1# a it #word2# thanks!'
print re.sub('#(\w+)#', lambda m: "#" + m.group(1).title() + "#", text)
答案 3 :(得分:2)
使用组(0)代替组(1)
import re
text = 'hello this #word1# a it #word2# thanks!'
print re.sub('#(\w+)#', lambda m:m.group(0).title(), text)
答案 4 :(得分:-1)
只需扩展群组,因此,它包含'#'字符:
print re.sub('(#\w+#)', lambda m:m.group(1).title(), text)