2016-03-25 6 views
3

で正規表現を使用して、タグ間のテキストを削除します。 <EmployerName>company name</EmployerName><Email>[email protected]</Email>私はXMLタグを次のようしているメモ帳

私は、タグの間でデータを削除するためにexpression- <EmployerName>[0-9A-Z:-]*</EmployerName>次の正規を使用しています。しかし、データは削除されません。何か案が?

+0

あり '会社NAME'のスペースがあるが、あなたはあなたの文字クラスでこれを一致していない - ので、あなたが何を期待しますか? –

+0

タグ間のすべての単語を削除したいと思います。 – user2961127

答えて

2

あなたがタグ内のすべてを一致させたい場合は、単に.を使用します。

<EmployerName>.*</EmployerName> 

あなたの文字グループ[0-9A-Z:-]は、数字、文字、コロンとハイフン文字をカバーし、それが空白や他の含まれていません。特殊文字。

次に、単に<EmployerName></EmployerName>と置き換えることができます。あなたの表現は、スペース「会社名を」不足している

<EmployerName>.*?</EmployerName> 
+0

。*を使用すると、タグ間で何かを置き換えることができますか? – user2961127

+0

@ user2961127はい、試しましたか? – manouti

+1

しかし、EmployerNameタグが1行に複数回存在する場合は注意してください;) –

0

は場合、同じライン上に複数のEmployerName要素が消極的一致を使用し、そこにあります。次のものを交換してください:

(<\/?(?:EmployerName|Email)>)[a-z \[email protected]]+(<\/?(?:EmployerName|Email)>) 

... $1$2と交換してください。逆参照はNotepad ++では機能しませんでしたので、少し冗長です。

0
<EmployerName>[^<]*</EmployerName> 

作業DEMO

関連する問題