[英]Remove #{word} from a string using regex (python)
我對正則表達式不熟悉,因此獲得一些幫助將是很棒的。
我有一個字符串: string = "You get #{turns} guesses."
並且我想刪除#{turns}
以便使string = "You get guesses."
我已經嘗試過:
string = re.sub(re.compile('#{.*?}'),"",string)
有什么建議么?
您的代碼可以工作,除了它不會刪除足夠的空格,並且如果只使用一次,則編譯是毫無用處的:
>>> string = "You get #{turns} guesses."
>>> string = re.sub(re.compile('#{.*?}'),"",string)
>>> string
'You get guesses.'
因此,您可能希望先編譯一次正則表達式,然后再使用它,最好將其更改為-例如,刪除尾部空格:
rgx = re.compile('#{.*?}\s*')
string = rgx.sub('',string)
請注意\\s*
,它將與標記后的任意數量的空格匹配,因此也將其刪除:
>>> string = "You get #{turns} guesses."
>>> rgx = re.compile('#{.*?}\s*')
>>> string = rgx.sub('',string)
>>> string
'You get guesses.'
如果在大括號( {}
)之間是一個單詞 ,則最好使用\\w
排除空格:
rgx = re.compile('#{\w*}\s*')
對於這個特定的問題,您也可以這樣做:
import re
string = "You get #{turns} guesses."
re.sub(r'#\S+ ', r'', string)
輸出:
'You get guesses.'
正則表達式:
'#\\S+ '
匹配#並匹配多個非空格字符和一個空格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.