2016-08-09 9 views
-2

私はPythonで文字列を持っている:特殊文字でマークされた部分文字列を文字列から削除するにはどうすればよいですか?

Tt = "This is a <\"string\">string, It should be <\"changed\">changed to <\"a\">a nummber." 

print Tt 

'This is a <"string">string, It should be <"changed">changed to <"a">a nummber.' 

あなたはいくつかの単語は、この部分に<\" \">.

私の質問は、(名前の文字で区切られた)これらの繰り返しの部分を削除する方法、である繰り返し参照してください?

'This is a string, It should be changed to a nummber.' 
+3

あなたのコードを見せてください。 – Julien

+0

あなたが直面している困難を表現するには、すでに試みた方法を私たちと共有してください。問題のある特定の分野に対処することができます。 – Lix

+1

よろしく!あなたはより良いタイトルを考え出すことができます。 –

答えて

5

使用正規表現:

import re 
Tt = re.sub('<\".*?\">', '', Tt) 

?*

結果は次のようにする必要があります。それは という表現を非貪欲にするので、可能な限り<\"\">の間に非常に少数の記号を一致させようとします。

区切りストリング は、1つの文字(<>)からのみ構成されたときにジェームズのソリューションを例にのみ動作します。この場合、[^>]のような否定を使用することが可能です。文字列で区切られた部分文字列(たとえば、beginおよびend)を削除する場合は、貪欲でない正規表現(つまり、.*?)を使用する必要があります。

1

私は迅速な正規表現使用したい:

import re 
Tt = "This is a <\"string\">string, It should be <\"changed\">changed to <\"a\">a number." 
print re.sub("<[^<]+>","",Tt) 
#Out: This is a string, It should be changed to a nummber. 

ああ - イゴールのポストに類似し、彼は少しで私を破りました。式を非貪欲にするのではなく、別の開始タグ「<」が含まれている場合は式に一致しないため、終了タグ ">"の後に続く開始タグにのみ一致します。

+0

@James:私は、貪欲でない正規表現を使用する方が良い理由があるのか​​、そういうときに、私の答えに小さな更新を書きました。 –

関連する問題