我试图用大写字母替换字符串中的任何i。我有以下代码:
str.replace('i ','I ')
但是,它不会替换字符串中的任何内容。我想在I之后加一个空格来区分任何我的单词和单词。
谢谢你能提供帮助!
确切的代码是:
new = old.replace('i ','I ')
new = old.replace('-i-','-I-')
答案 0 :(得分:2)
new = old.replace('i ','I ')
new = old.replace('-i-','-I-')
当您通过它分配第二个操作的结果时,您将丢弃第一个new
。
要么
new = old.replace('i ','I ')
new = new.replace('-i-','-I-')
或
new = old.replace('i ','I ').replace('-i-','-I-')
或使用正则表达式。
答案 1 :(得分:1)
我认为你需要这样的东西。
>>> import re
>>> s = "i am what i am, indeed."
>>> re.sub(r'\bi\b', 'I', s)
'I am what I am, indeed.'
这只会将'i'
替换为I
,但其他单词中的'i'
将保持不变。
对于comments的示例,您可能需要以下内容:
>>> s = 'i am sam\nsam I am\nThat Sam-i-am! indeed'
>>> re.sub(r'\b(-?)i(-?)\b', r'\1I\2', s)
'I am sam\nsam I am\nThat Sam-I-am! indeed'