コード例 #1
0
        public Object _matchAll(INakoFuncCallInfo info)
        {
            string s       = info.StackPopAsString();
            string pattern = info.StackPopAsString();

            m = Regex.Match(s, pattern);
            NakoVarArray res    = info.CreateArray();
            int          index  = 0;
            NakoVarArray groups = new NakoVarArray();

//          NakoVariable ret = new NakoVariable();
            while (m.Success)
            {
                res.SetValue(index, m.Value);
                NakoVarArray subgroups = new NakoVarArray();
                for (int i = 0; i < m.Groups.Count; i++)
                {
                    subgroups.SetValue(i, m.Groups[i].Value);
                }
                groups.Add(subgroups);
//              for(int i = 0;i < m.Groups.Count;i++){
//                  groups.SetValue(i,m.Groups[i].Value);
//              }
//              ret.Type = NakoVarType.Array;
//              ret.Body = groups;
                index++;
                m = m.NextMatch();
            }
            info.SetVariableValue("抽出文字列", groups);
            return(res);
        }
コード例 #2
0
ファイル: NakoPluginSample.cs プロジェクト: weyk/nadesiko2
        public Object _sample_changeHoge(INakoFuncCallInfo info)
        {
            Object tmp = info.StackPop();

            info.SetVariableValue("HOGE", tmp);
            return(null);
        }
コード例 #3
0
        // Define Method
        public Object _match(INakoFuncCallInfo info)
        {
            string s       = info.StackPopAsString();
            string pattern = info.StackPopAsString();

            m = Regex.Match(s, pattern);
            NakoVarArray groups = info.CreateArray();

            if (m.Success)
            {
                for (int i = 0; i < m.Groups.Count; i++)
                {
                    groups.SetValue(i, m.Groups[i].Value);
                }
                info.SetVariableValue("抽出文字列", groups);
                return(m.Value);
            }
            return("");
        }
コード例 #4
0
 public Object _sample_changeHoge(INakoFuncCallInfo info)
 {
     Object tmp = info.StackPop();
     info.SetVariableValue("HOGE", tmp);
     return null;
 }
コード例 #5
0
ファイル: NakoPluginRegex.cs プロジェクト: wnoguchi/nadesiko2
 // Define Method
 public Object _match(INakoFuncCallInfo info)
 {
     string s = info.StackPopAsString();
     string pattern = info.StackPopAsString();
     m = Regex.Match(s,pattern);
     NakoVarArray groups = info.CreateArray();
     if(m.Success){
         for(int i = 0;i < m.Groups.Count;i++){
             groups.SetValue(i,m.Groups[i].Value);
         }
         info.SetVariableValue("抽出文字列", groups);
         return m.Value;
     }
     return null;
 }
コード例 #6
0
ファイル: NakoPluginRegex.cs プロジェクト: wnoguchi/nadesiko2
 public Object _matchAll(INakoFuncCallInfo info)
 {
     string s = info.StackPopAsString();
     string pattern = info.StackPopAsString();
     m = Regex.Match(s,pattern);
     NakoVarArray res = info.CreateArray();
     int index = 0;
     NakoVarArray groups = new NakoVarArray();
     //        	NakoVariable ret = new NakoVariable();
     while(m.Success){
         res.SetValue(index,m.Value);
         NakoVarArray subgroups = new NakoVarArray();
         for (int i = 0; i < m.Groups.Count; i++)
         {
             subgroups.SetValue(i,m.Groups[i].Value);
         }
         groups.Add(subgroups);
     //        	    for(int i = 0;i < m.Groups.Count;i++){
     //        	        groups.SetValue(i,m.Groups[i].Value);
     //        	    }
     //        	    ret.Type = NakoVarType.Array;
     //        	    ret.Body = groups;
         index++;
         m = m.NextMatch();
     }
     info.SetVariableValue("抽出文字列", groups);
      	    return res;
 }