替换字符串不更改值

2024-04-25 22:14:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用大写I替换字符串中的任何I。我有以下代码:

str.replace('i ','I ')

但是,它不会替换字符串中的任何内容。我希望在I后面加一个空格来区分任何I在单词中和单词外。你知道吗

如果你能提供帮助,谢谢!你知道吗

确切的代码是:

new = old.replace('i ','I ')
new = old.replace('-i-','-I-')

Tags: 字符串代码内容new单词oldreplace区分
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-')

或者使用正则表达式。你知道吗

我想你需要这样的东西。你知道吗

>>> 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'

相关问题 更多 >