2017-10-30 21 views
0

のための最後の文字を置換する方法を作る、私はが助けてくださいメモ帳++

<Meaning>sự hạ thủy (tàu, thuyền); sự phóng (tên lửa)</Meaning> 

に最後の言葉

<Meaning>sự hạ thủy (tàu, thuyền); sự phóng (tên lửa)</para> 

を交換したいxmlファイル内のコードの多くを持っています私は、次の置換コードを使用:と交換

^<Meaning>(.*)\<+.*$ 

:どのような検索

/<Meaning>$1.</Meaning> 

しかし、結果は「見つける:無効な正規表現」を返し、あなたが交換したい部分のみにマッチする正規表現を必要とするすべての

+0

をに置き換えますか? – Mohit

+0

いいえ、xmlファイルには多くのコードがありますが、 ""の行と ""から * の行を置き換えたいだけです。 –

+0

xmlファイルには、多くの行があります。 launch(ship、boat);打ち上げ(ロケット) <高度標高(ロケットランチャー) しかし、唯一のすべての行置き換えたい: 打ち上げ(船、ボート)。打ち上げ(ロケット) 〜: 打ち上げ(船舶)打ち上げ(ロケット)

答えて

0

ファーストを。私があなたを正しく理解していれば、その前に<Meaning>以外のタグがなければ、</ para>を置き換えたいと思う。 これは正当なlookbehindのための完全なケースですが、それらは固定された文字数に制限されているので、\Kを使用する必要があります。

だから、\Kとそれをすべて捨てて取得するには、タグがないものを探し、<Meaning>を検索<\ para>

正規表現

<Meaning>[^<]*[^>]*\K</ para> 

は多分あなたがいることを、確認したいです</ para>は、行内の最後のテキストです。あなたは改行\n\r(およびオプションの空白\s)を検索できますが、それはそう交換することにしたくないあなたが確認したい場合は<Meaning>は、行の最初の作品であること、(?=)

<Meaning>[^<]*[^>]*\K</ para>(?=\s*[\n\r]) 

とそれを包みますあなたは、ドキュメント^の開始または

(?:^|[\r\n])<Meaning>[^<]*[^>]*\K</ para>(?=\s*[\n\r]) 

[\r\n]は、たぶん私はあなたが間違って持って、それは同じラインにいない限り<Meaning></ para>の間に何がある可能linebrakeのいずれかを確認する必要があります。その場合は次のものを使用できます:

(?:^|[\r\n])<Meaning>[^\n\r]*\K</ para>(?=\s*[\n\r]) 
関連する問題