public ToneDefinition(TONE_TYPE Type, string Befor, string After, string FixBefor, string FixAfter, Regex Rx) { this.Type = Type; this.Rx = Rx; this.After = After; this.Befor = Befor; this.FixAfter = FixAfter; this.FixBefor = FixBefor; }
/// <summary> /// タイプ別にビフォーを生成する /// </summary> /// <param name="befor"></param> /// <param name="type"></param> private List <ToneDefinition> CreateToneDefinition(string befor, string after, string type) { //トーンタイプを変換する TONE_TYPE tType = Type2ToneType(type); List <ToneDefinition> resList = new List <ToneDefinition>(); if (tType == TONE_TYPE.REPLACE) { //単純置き換え resList.Add(new ToneDefinition(tType, befor, after, befor, after, null)); } else if (tType == TONE_TYPE.REGEX) { //正規表現置換 resList.Add(new ToneDefinition(tType, befor, after, befor, after, new Regex(befor, RegexOptions.Compiled))); } else if (tType == TONE_TYPE.END) { //終端 //終端の正規表現追加 string fixBefor = AddKakko(befor) + REGEX_END; //終端文字の置き換え追加 string fixAfter = after + DOLL2; resList.Add(new ToneDefinition(tType, befor, after, fixBefor, fixAfter, new Regex(fixBefor, RegexOptions.Compiled))); } else if (tType == TONE_TYPE.END_CHINESE_CHARACTER) { //終端 漢字 //終端漢字の正規表現追加 string fixBefor = REGEX_END_CHINESE_CHARACTER + REGEX_END; //終端文字の置き換え追加 string fixAfter = after + DOLL2; resList.Add(new ToneDefinition(tType, befor, after, fixBefor, fixAfter, new Regex(fixBefor, RegexOptions.Compiled))); //終端漢字形容詞の正規表現追加 string fixBefor2 = REGEX_END_CHINESE_CHARACTER_ADJECTIVE + REGEX_END; //終端文字の置き換え追加 string fixAfter2 = after + DOLL2; resList.Add(new ToneDefinition(tType, befor, after, fixBefor2, fixAfter2, new Regex(fixBefor2, RegexOptions.Compiled))); } else if (tType == TONE_TYPE.END_NUMBER) { //終端 数字 //終端数字の正規表現追加 string fixBefor = REGEX_NUMBER + REGEX_END; //終端文字の置き換え追加 string fixAfter = after + DOLL2; resList.Add(new ToneDefinition(tType, befor, after, fixBefor, fixAfter, new Regex(fixBefor, RegexOptions.Compiled))); } else if (tType == TONE_TYPE.END_ALPHABET) { //終端 アルファベット //終端アルファベットの正規表現追加 string fixBefor = REGEX_ALPHABET + REGEX_END; //終端文字の置き換え追加 string fixAfter = after + DOLL2; resList.Add(new ToneDefinition(tType, befor, after, fixBefor, fixAfter, new Regex(fixBefor, RegexOptions.Compiled))); } else if (tType == TONE_TYPE.END_SYMBOL) { //終端 記号 //終端記号の正規表現追加 string fixBefor = REGEX_SYMBOL + REGEX_END; //終端文字の置き換え追加 string fixAfter = after + DOLL2; resList.Add(new ToneDefinition(tType, befor, after, fixBefor, fixAfter, new Regex(fixBefor, RegexOptions.Compiled))); } else if (tType == TONE_TYPE.END_KATAKANA) { //終端 カタカナ //終端カタカナの正規表現追加 string fixBefor = REGEX_KATAKANA + REGEX_END; //終端文字の置き換え追加 string fixAfter = after + DOLL2; resList.Add(new ToneDefinition(tType, befor, after, fixBefor, fixAfter, new Regex(fixBefor, RegexOptions.Compiled))); } else if (tType == TONE_TYPE.END_HIRAGANA) { //終端 ひらがな //終端ひらがなの正規表現追加 string fixBefor = REGEX_HIRAGANA + REGEX_END; //終端文字の置き換え追加 string fixAfter = after + DOLL2; resList.Add(new ToneDefinition(tType, befor, after, fixBefor, fixAfter, new Regex(fixBefor, RegexOptions.Compiled))); } return(resList); }