2012-01-11 493 views
12

我使用Eclipse和記事本++進行更換多個文件(XML & JAVA)區分大小寫字符串替換Eclipse或記事本+ +

我想,以取代[PP] RODUCT [MM]灰燼[FF]和[嗯]燼在一個單一的替代和保存的情況。

ProductMember -> FundMember 
productMember -> fundMember 
productmember -> fundmember 

使用捕獲組很容易從成員保持M的情況,但我對P替換很無能。

感謝您的幫助!

+0

我不確定是否有可能用正則表達式做到這一點。爲什麼你需要在一次搜索和替換中完成這項工作? – 4ndrew 2012-01-11 17:45:06

+0

搜索和替換必須在10個文件夾中執行。在單個替代品中執行此操作會降低錯誤風險,因爲我需要10次搜索和替換,而不是20次。 – jpboudreault 2012-01-11 17:53:28

+0

@leconcombreless在這種情況下,我建議使用腳本。如果可能的話,或者在IDE中重構。 – 4ndrew 2012-01-11 17:58:45

回答

18

提取的日食,你可以使用正則表達式保留情況下的操作:\ C。要解決你的例子,你應該搜索「Product」,替換爲「\ CFund」(一定要勾選正則表達式選項)。這將用基金取代產品與基金和產品。

+0

如果這能起作用,那麼肯定會出現這種情況。我只是在一個CamelCasedWord上試了一下,我想用AnotherCamelCasedWord替換它,儘管\ C它總是執行一個直接替換,而不是在它應該切換的情況下。 – user1283068 2017-11-28 12:33:07

+0

直到我意識到我已選中「區分大小寫」框,取消選中替換後按預期工作後,我纔得到此工作。 – codebox 2017-11-30 15:31:00

0

NP ++正則表達式是非常差的,你可以使用一個Perl的一行來完成這項工作:

perl -pi.back -e's{(productmember)}{ uc fundmember | (uc $1^$1) . (uc(substr $1, -1)^substr $1, -1) x (length($new) - length $1) }egi;' theFile 

perl faq6

相關問題