2017-03-22 16 views
0

私は立ち往生しています。私は正規表現を使用してタグと空白文字を取り除こうとしています。Python RegEx複数の言語

b="<NAME> 
    content here 
    more content 
</NAME> 
" 
result = re.sub("<NAME.*?NAME>", "", b) 

「b」がすべて1行にある場合、それは機能します。名前タグの間のすべてを削除します。しかし、私はそれも複数の行で動作する必要があります。

+1

In [7]: print(re.sub(r'\s*</?NAME>\s*', '', b)) content here more content 

か:あなたは、次の正規表現を使用することができます/re.html#re.S)。 –

+1

正規表現を使用してXMLを解析しないでください。 – sapht

答えて

1

正規表現が正しくありません。 https://docs.python.org/2/library(あなたは[シングルラインモードをオンにする]ない限り、ドットは改行にマッチすることはありません

In [8]: print(re.sub(r'\s*</?NAME>\s*\n', '', b)) 
    content here 
    more content 
+0

ご協力ありがとうございます。たぶん私は自分自身をとてもうまく説明していないかもしれません。しかし、私が達成しようとしているのは、タグ間のすべてを取り除き、タグも取り除くことです。 In 7は空白と名前タグを削除しますが、他の文字はその間に残ります。 – user3525290

+0

これは私がこれまで持っているものです。私は結合する必要があるので、それは唯一のものです。 上記の名前タグとタグ内のすべてを削除します。 もう1つの名詞タグを削除する正規表現を作成しました re – user3525290

+0

@ user3525290あなたはあなたの質問にあなたの期待される出力を追加することができますか? – Kasramvd