if ExecRegExpr('^(13[0-9]|15[0-9]|18[0-9])(\d{8})$',Edit1.Text) then begin这个校验手机码可以用
我应该要怎么样才能在一个文本中提取手机号码呢?我是调用这个正则的
unit RegExpr;
C#中的是string strPNR = Regex.Match(EPNR, "^(13[0-9]|15[0-9]|18[0-9])(\d{8})$").Value;
在DELPHI中应该怎么调用啊...急用谢谢!!!

解决方案 »

  1.   

    Regex r = new Regex("^(?:(?<telCode>((13[0-9])|(15[0-9])|(18[0-9]))(\d){8}))$", egexOptions.IgnoreCase | RegexOptions.Singleline);
    MatchCollection mc = r.Matches(EPNR); foreach (Match m in mc)
     {
       telCode = m.Groups["telCode"].Value;
     }telCode 就是你要提取的手机号码。。思想就是这样,你可以再将那个foreach优化下
      

  2.   

    汗,看错了,delphi 应该这样调用
    reg:=tperlregex.Create(nil) ;
    reg.Subject:=edit1.Text ;
    reg.RegEx:='^(?:(? <telCode>((13[0-9])|(15[0-9])|(18[0-9]))(\d){8}))$';
    if reg.MatchAgain  then
    telCode:=reg.SubExpressions[1];
    end;
    我用的是tperlReg 控件,应该和你的那个控件差不多