2016-08-05 111 views
0

我想用字August替换单词?月份的文本。Python用另一个字符串替换字符串(大写或小写)

text=text.replace('?Month','August') 

问题是我不希望大写或小写在?个月。无论月份是大写还是小写(或混合),8月份都会被覆盖。请参阅下面的示例:

E.g: ?Month ->August 
?month -> August 
?MONTH -> August 
?moNth -> August 

我该怎么做?

回答

2

使用正则表达式(通过re module):

import re 

text = re.sub(r'\?month', 'August', text, flags=re.IGNORECASE) 

re.IGNORECASE flag告诉正则表达式引擎不区分大小写的匹配文本:

>>> import re 
>>> text = 'Demo: ?Month ?month ?MONTH ?moNth' 
>>> re.sub(r'\?month', 'August', text, flags=re.IGNORECASE) 
'Demo: August August August August' 
0

对于它的运动,而不导入任何东西:

text = text.split(' ') 
for i, s in enumerate(text): text[i] = 'August' if s.lower() == 'month' else text[i] 

print((' ').join(text)) 

如果s.lower()等于month

这将取代每个出现 s August
相关问题