2017-01-27 6 views
0

私はregexに慣れていないので、助けてもらえます。regex(python)を使用して#{word}を文字列から削除します

私は、文字列を持っている:

string = re.sub(re.compile('#{.*?}'),"",string) 

任意の提案:string = "You get #{turns} guesses."が、私は私がそれを試してみたstring = "You get guesses."

を持っているために、#{turns}を削除したい ?

+2

'string = string.replace("#{turns} "、" ")'についてはどうですか? – khelwood

+0

スペースが消えないことを除いて、それはうまくいきます... –

+0

あなたは何を持っていますか? –

答えて

1

あなたのコードは、それがスペースの十分な量を削除しないと、あなたは一度だけそれを使用する場合にコンパイルがかなり無用であることを除いて、動作します:

>>> 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*') 
0

をまた、それはとても好きですか:

import re 

string = "You get #{turns} guesses." 
re.sub(r'#\S+ ', r'', string) 

出力:

'You get guesses.' 

正規表現:

'#\S+ 'マッチ#と一致するなど、多くの非空白文字と半角スペース。

関連する問題