Beispiel #1
0
 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;
 }
Beispiel #2
0
        /// <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);
        }