2017-01-23 36 views
1

私はnotepad ++を使用して、XMLファイル内の特定の単語の出現を特定のタグ内の別の単語で置き換えようとしています。例えば文字列から部分文字列を取り出す正規表現

: XMLファイルには、私はhttps://regex101.com/r/Q8UB6a/1ccEmails.*(example).*ccEmailsを試してみました<ccEmails>が、ない

<toEmails>内部の内側 myexample存在して を交換する必要がある、それ

<alerts> 
    <ccEmails>[email protected],[email protected]</ccEmails> 
    <toEmails>[email protected]</toEmails>    
</alerts> 

が含まれています最後のオカレンスだけを返しています。また、私は文字列を別の文字列に置き換えることができません。私はメモ帳+ +でこれを試してみました、私はあなたが特定のタグ内に含まれる部分文字列を検索/置換で私を助けてもらえ<ccEmails>

enter image description here

内のすべての文字列を取得しています

。詳細が必要な場合はお知らせください。

答えて

1

あなたは検索と置換]ダイアログボックスを使用する場合は、

(?:<ccEmails>|\G(?!^))[^<]*?\K\bexample\b 

よう\Gベースの正規表現を使用してmyexampleと交換する必要があります。 online regex demo.

詳細を参照してください:

  • (?:<ccEmails>|\G(?!^)) - のいずれか<ccEmails>または最後に成功したマッチ
  • [^<]*?の終わり - \K
  • できるだけ少ない <以外の任意の0+文字 - これまでにマッチしたテキストは除きます - \bexample\b - 全体の単語 example

enter image description here

0

(<ccEmails>[^<>][email protected])example\.\1myexample.に置き換え、すべてを置き換えます。 replace-allは、各パスが必要な文字列内でexampleの1つだけを変更するので、2回以上実行する必要があります。

関連する問題