我讀了一個檔案,其中有這樣的幾行字:
我讀了一個檔案,其中有這樣的幾行字:
line='用戶 . .有一個{pass.word},但.它是{wro.ng}。'/span>
我想去掉句號,只在括號之間,我需要的是:
我想去掉句號。
用戶 . ...有一個{密碼},但是...它是{錯誤的}。
因此,我閱讀了該檔案并運行了re.sub,試圖只洗掉括號之間的句號,而不是其他的,但我所能做的就是洗掉所有的句號或什么都不洗掉。
有誰能給我提個醒?
提前感謝,
uj5u.com熱心網友回復:
我們可以嘗試在這里使用re.sub與一個回呼函式:
line = "用戶 . .有一個{pass.word},但.它是{wro.ng}。"
output = re.sub(r'{.*?}', lambda m: m.group().replace('. ', '), line)
print(output) # User . ...有一個{密碼},但...它是{錯誤的}。
uj5u.com熱心網友回復:
如果沒有lamba,你可以使用pypi regex模塊和一個量詞在正向查找中,并以一個空字串作為子。
[^{}]是一個否定的字符類,可以匹配除卷曲的字符外的任何字符。
(?<={[^{}]*). (?=[^{}]*})
uj5u.com熱心網友回復:
看著另一個類似問題的答案,我把它改編為這一行,它沒有使用lambda,并不是說我反對lambda,但我也很好奇沒有lambda的答案:
這就給出了:
標籤: 上一篇:具有一列不同的多列的SQL查詢line=''''''''''''''''''''''''''。
line= 'User . .有一個${pass.word},但.它是${wro.ng}。'
re.sub(r".(?=[^}{]*})", "", line) 'User .
'User . .有一個${密碼},但.它是${錯誤的}。'
