วันเสาร์ที่ 7 ธันวาคม พ.ศ. 2562

ใชั Rex หา Pattern function(xxx)

Key ของ Regex. ในกรณีที่มี วงเล็บ ต้องใช้ \  เช่น ( [ {   } ] )
"FX\((.*?)\)";


public static void Main(string[] args)
        {
            var ps = @"FX\((.*?)\)";
           Regex regex = new Regex(ps);
         
  Match m = regex.Match("morenonxmldata FX(0002)morenonxmldata FX(2929)");
                if (m.Success)
                {
                    Console.WriteLine(m.Groups[1]); // inner text
            Console.WriteLine("Value  = " + m.Value); // แสดง ค่า
            Console.WriteLine("Length = " + m.Length); // ความยาว
            Console.WriteLine("Index  = " + m.Index);// แสดงตำแหน่ง
        }
         
        }

ถ้าต้องการ ทำต่อ ให้ใช้
Match match = match.NextMatch();
if (match.Success) { Console.WriteLine(match.Value); }


หรือ

var v = Regex.Matches("morenonxmldata FX(0002)morenonxmldata FX(2929)",ps);

ทดลอง เปลี่ยน และ ต่อ ตัวหนังสือ

 public static void Main(string[] args)
        {
            string ps = @"FX\((.*?)\)";
           Regex regex = new Regex(ps);
            string nps="";
            string txt="morenonxmldata FX(0002)morenonxmldata FX(2929)aa";
            int sIndex=0;
  var v = Regex.Matches(txt,ps);
         foreach(Match m in v)    
            {
                    Console.WriteLine(m.Groups[1]);
            Console.WriteLine("Value  = " + m.Value);
            Console.WriteLine("Length = " + m.Length);
            Console.WriteLine("Index  = " + m.Index);
            nps+=txt.Substring(sIndex,m.Index-sIndex);
             nps+=m.Groups[1].ToString();
             Console.WriteLine(nps);
             sIndex=m.Index+m.Length;
            }
            if(sIndex<txt.Length){ // ต่อ txt ที่เหลือ
              nps+=txt.Substring(sIndex);
            }
            Console.WriteLine(nps);
        }