2015-09-24 14 views
0

我試圖編輯與像線一個巨大的文件:更換字符串的一部分,同時不影響剩餘用記事本++

1 9416 0 0 10 10 0 dropitems.drop_MFighter_m012_t91_u_m00   mfighter.MFighter_m201_t201_u    0 0 0 0 0 1 0 0 icon.armor_t91_u_i00     -1 7570 46 1 2531A298 0  1  21 1 Fighter.MFighter_m201_u    1 mfighter.MFighter_m201_t201_u    2 Fighter.MFighter_m201_hrh_ad00 104 114 Fighter.MFighter_m201_hrs_ad00 115 114             2 MFighter.MFighter_m201_HRR_ad00_t201_a MFighter.MFighter_m201_HRR_ad00_t201_a      1 Fighter.FFighter_m012_u    1 FFighter.FFighter_m012_t201_u    2 Fighter.FFighter_m012_hrr_ad00 114 114 Fighter.FFighter_m012_hra_ad00 97 114             2 MFighter.MFighter_m201_HRR_ad00_t201_a MFighter.MFighter_m201_HRR_ad00_t201_a      1 DarkElf.MDarkElf_m010_u    1 MDarkElf.MDarkElf_m201_t201_u    2 DarkElf.MDarkElf_m010_Hrr_ad00 114 114 DarkElf.MDarkElf_m010_Hra_ad00 97 114             2 MDarkElf.MDarkElf_m010_HRR_ad00_t201_a MDarkElf.MDarkElf_m010_HRR_ad00_t201_a      1 DarkElf.FDarkElf_m006_u    1 FDarkElf.FDarkElf_m006_t201_u    2 DarkElf.FDarkElf_m006_hrr_ad00 114 114 DarkElf.FDarkElf_m006_hra_ad00 97 114             2 MDarkElf.MDarkElf_m010_HRR_ad00_t201_a MDarkElf.MDarkElf_m010_HRR_ad00_t201_a      1 Dwarf.MDwarf_m008_u    1 MDwarf.MDwarf_m201_t201_u    2 Dwarf.MDwarf_m008_Hrr_ad00 114 114 Dwarf.MDwarf_m008_Hra_ad00 97 114             2 MDwarf.MDwarf_m008_HRR_ad00_t201_a MDwarf.MDwarf_m008_HRR_ad00_t201_a      1 Dwarf.FDwarf_m008_u    1 FDwarf.FDwarf_m008_t201_u    2 Dwarf.FDwarf_m008_hrr_ad00 114 114 Dwarf.FDwarf_m008_hra_ad00 97 114             2 MDwarf.MDwarf_m008_HRR_ad00_t201_a MDwarf.MDwarf_m008_HRR_ad00_t201_a      1 Elf.MElf_m011_u    1 MElf.MElf_m011_t201_u    2 Elf.MElf_m011_Hrr_ad00 114 114 Elf.MElf_m011_Hra_ad00 97 114             2 MElf.MElf_m011_HRR_ad00_t201_a MElf.MElf_m011_HRR_ad00_t201_a      1 Elf.FElf_m011_u    1 FElf.FElf_m011_t201_u    2 Elf.FElf_m011_hrr_ad00 114 114 Elf.FElf_m011_hra_ad00 97 114             2 MElf.MElf_m011_HRR_ad00_t201_a MElf.MElf_m011_HRR_ad00_t201_a      1 Magic.MMagic_m011_u    1 mMagic.MMagic_m011_t301_u    2  0 255 Magic.MMagic_m011_Rra_ad00 97 114             2  Mmagic.Mmagic_m011_Rra_ad00_t301_x      1 Magic.FMagic_m013_u    1 FMagic.FMagic_m013_t301_u    2  0 255 Magic.FMagic_m013_Rra_ad00 97 114             2  Mmagic.Mmagic_m011_Rra_ad00_t301_x      1 Orc.MOrc_m007_u    1 MOrc.MOrc_m201_t201_u    2 Orc.MOrc_m007_hrh_ad00 104 114 Orc.MOrc_m007_hrs_ad00 115 114             2 MOrc.MOrc_m007_HRR_ad00_t201_a MOrc.MOrc_m007_HRR_ad00_t201_a      1 Orc.FOrc_m007_u    1 FOrc.FOrc_m007_t201_u    2 Orc.FOrc_m007_hrr_ad00 114 114 Orc.FOrc_m007_hra_ad00 97 114             2 MOrc.MOrc_m007_HRR_ad00_t201_a MOrc.MOrc_m007_HRR_ad00_t201_a      1 Shaman.MShaman_m007_u    1 MShaman.MShaman_m007_t301_u    2  0 255 Shaman.MShaman_m007_Rra_ad00 97 114             2  MShaman.MShaman_m007_Rra_ad00_t301_x      1 Shaman.FShaman_m007_u    1 FShaman.FShaman_m007_t301_u    2  0 255 Shaman.FShaman_m007_Rra_ad00 97 114             2  MShaman.MShaman_m007_Rra_ad00_t301_x      1 Kamael.mkamael_m005_u    2 MKamael.MKamael_m005_t101_u Mkamael.Mkamael_m005_t101_ut    3 Kamael.MKamael_m005_Lrr_ad00 114 114 Kamael.Mkamael_m000_w_ad00 119 95 Kamael.mkamael_m005_l_ad00 108 95          3 MKamael.MKamael_m005_Lrr_ad00_t101_a Mkamael.Mkamael_m000_t00_w Mkamael.Mkamael_m005_t101_ut     1 Kamael.fkamael_m009_u    2 FKamael.FKamael_m009_t101_u FKamael.FKamael_m009_t101_ut    3 Kamael.FKamael_m009_Lrr_ad00 114 114 Kamael.Fkamael_m000_w_ad00 119 95 Kamael.Fkamael_m009_l_ad00 108 95          3 MKamael.MKamael_m005_Lrr_ad00_t101_a Fkamael.Fkamael_m000_t00_w FKamael.FKamael_m009_t101_ut     1  1   0    0   LineageEffect.p_u002_a 4 ItemSound.armor_metal_alt_6 ItemSound.public_armor_04 ItemSound.shield_steel_1 ItemSound.shield_steel_8 ItemSound.itemdrop_armor_lightmetal ItemSound.itemequip_armor_lightmetal 1 0 2 5 0 226 0 0 36 

我想出了下面的正則表達式來找到類似的線路:

^.*?(_t91(.*?)1 0 2 5).*?$ 

基本上我不得不換號5〜6號,我想用下面的正則表達式可以這樣做:

\1t91\21 0 2 6 

其結果是從't91'開始的一行以結束,因爲它應該與被替換的數字結尾,但隨後它重複2-3次(即:2 6 0 226 0 0 36t91等)

你們對此有任何想法嗎?正則表達式對我來說仍然是一個謎。

在此先感謝。

+1

嘗試簡化問題或將其推廣到更易讀的示例中,否則將很難爲人們提供幫助。 – shevron

+1

嘗試'^(。*?_ t91。*?1 \ s + 0 \ s + 2 \ s +)5(。*?)$' - >'\ 16 \ 2'(或'$ {1} 6 $ {2}')。 –

回答

0

從我看到的你試圖在特定的環境中作爲一個整體詞取代5

要匹配整個單詞,您需要\b(字邊界),以免更改像55這樣的值。

要在整條生產線取代它只有一次,你可以使用正則表達式

^(.*?_t91.*?1\s+0\s+2\s+)5(\b.*?)$ 
|-----first group------| | 2| 

而且隨着${1}6${2}更換(雖然\16\2也在這裏工作)。

如果有在同一行這樣的多個值,使用

(_t91.*?1\s+0\s+2\s+)5\b 

而且隨着${1}6取代。

+1

非常感謝你!它完美的工作! – Kalinia