我有字串banana | 10,想| 用9. 我想要的輸出是banana | 9. 我怎么能做到這一點?我查看了.replace(),.split()并將字串轉換為字串列,然后回圈遍歷它們,直到找到應該替換的位,但就是想不通。
uj5u.com熱心網友回復:
我建議你使用re模塊(正則運算式模塊):
import re
myString = "banana | 10"
re.sub(r"\|. ", r"| 9", myString)
輸出
banana | 9
uj5u.com熱心網友回復:
也許這可以作業。代碼:
string = 'banana | 10 ';
pos = string.find('|')
left_string = string[:pos 2];
final_string = left_string '9'
print(final_string)
uj5u.com熱心網友回復:
yourStr = 'banana | 10'
yourStr = yourStr[:yourStr.index('|') 2] '9'
print(yourStr)
香蕉| 高解析度照片| CLIPARTO 9
其他regex解決方案更優雅,但這更具可讀性。你可以決定什么更適合你。
uj5u.com熱心網友回復:
您可以在第 1 組中捕獲|后面沒有換行符的可選空格,并匹配要洗掉的行的其余部分。
在替換使用捕獲組 1 后跟9
import re
s = "banana | 10"
pattern = r"(\|[^\S\n]*).*"
print(re.sub(pattern, r"\g<1>9", s))
輸出
banana | 9
如果要匹配數字和至少 1 個或多個空格,請使用:
(\|[^\S\n] )\d
查看正則運算式 101 演示
uj5u.com熱心網友回復:
您可能想使用 split() 方法...這將有助于您理解該方法。
sep = ' | '
new_value = 9
s ='banana | 10'.split(sep=sep)
print( s[0] sep str(new_value))
uj5u.com熱心網友回復:
邏輯可能可以改進,但這樣的事情可能會起作用:
text = "banana | 10"
if "|" in text:
tmp = text.split("|")
print (tmp[0] "| 9")
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/442521.html
