txt データベース ファイルを sql コンバーターに書き込んでいますが、項目を行に分割する必要があります。問題は、アイテムの中には、複数のコンマ (db 構造の区切り記号) を保持できるスクリプトが含まれている可能性があることです。良いニュースは、スクリプトが {}-s にネストされているため、csv ファイルの解析に似たジョブになります。唯一の問題は、スクリプト自体が {}-s にネストされたより多くのスクリプトを保持できることです。これにより、数式が機能しなくなります..
txt データベースの構造:
501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(45,65),0; },{},{}
502,Orange_Potion,Orange Potion,0,200,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(105,145),0; },{},{}
503,Yellow_Potion,Yellow Potion,0,550,,130,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(175,235),0; },{},{}
504,White_Potion,White Potion,0,1200,,150,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(325,405),0; },{},{}
分割の区切り記号を一致させるために使用する正規表現:
,(?![^{}]*\})
これは、次のような、より複雑なネストされたスクリプト項目に対抗するまでは正常に機能します。
1492,Velum_Glaive,Vellum Glaive,4,20,,4500,250,,3,0,0x00004082,7,2,34,4,95,1,5,{ bonus2 bAddRace,RC_DemiHuman,80; if(getrefine()>=6) { bonus2 bSkillAtk,"LK_SPIRALPIERCE",100; bonus2 bSkillAtk,"KN_SPEARBOOMERANG",50; } if(getrefine()>=9) { autobonus2 "{ bonus bShortWeaponDamageReturn,20; bonus bMagicDamageReturn,20; }",100,2000,BF_WEAPON|BF_MAGIC,"{ specialeffect2 EF_REFLECTSHIELD; }"; } },{},{}
では、db 構造の区切り文字のみを一致させ、スクリプト内のコンマを除外するにはどうすればよいでしょうか?
前もって感謝します!:)