我有一个字符串banana | 10
,想要用9
替换从|
到字符串末尾的所有内容。 我想要的输出应该是banana | 9
。 我应该怎么做呢? 我已经研究了.replace()
、.split()
和将字符串转换为字符列表,然后循环遍历它们,直到找到应该被替换的位,但是就是想不出来。
re
模块(正则表达式模块):import re
myString = "banana | 10"
re.sub(r"\|.+", r"| 9", myString)
banana | 9
yourStr = 'banana | 10'
yourStr = yourStr[:yourStr.index('|') + 2] + '9'
print(yourStr)
香蕉 | 9
其他的正则表达式
方案更加优雅,但这个方案更容易理解。你可以决定哪个更适合你。
您可能希望使用split()方法...这对于您理解该方法将会很有帮助。
sep = ' | '
new_value = 9
s ='banana | 10'.split(sep=sep)
print( s[0] + sep + str(new_value))
string = 'banana | 10 ';
pos = string.find('|')
left_string = string[:pos+2];
final_string = left_string + '9'
print(final_string)
|
,并匹配要删除的其余部分所在的整行。
在替换中使用捕获组1,后跟9
。
import re
s = "banana | 10"
pattern = r"(\|[^\S\n]*).*"
print(re.sub(pattern, r"\g<1>9", s))
输出
banana | 9
(\|[^\S\n]+)\d+
text = "banana | 10"
if "|" in text:
tmp = text.split("|")
print (tmp[0] + "| 9")