用TRegExpr   提取http://forum.csdn.net/  中的csdn,表达式该怎样写?  另外请问哪儿有TRegExpr 表达式的资料

解决方案 »

  1.   

    如果用的XE,是自带正则库的,用官方的还是比较踏实
    正则表达式都是标准的,只是可能有的三方控件会加入自己的一些特性表达式
    http://forum.(.*?).netXE测试通过uses
      RegularExpressions;var
      Match: TMatch;
    begin
      Match := TRegEx.Match('http://forum.csdn.net', 'http://forum.(.*?).net');
      if Match.Success then Caption := Match.Groups[1].Value;
    end;
      

  2.   

    上面那样不是很严谨,这样应该可以了
    http://forum\.(.*?)\.net
      

  3.   

    我没讲明白,谢谢楼上。我的意思是取两个点之间的,还有http://www.qq.com/中的qq  http://www.ifeng.com/中的 ifeng 等类似的;我现在是这样用的'\.\w+\.',但是取出来结果是.csdn.
         .qq.   .ifeng.  然后再用字符串函数去掉.      我想直接使用正则直接从网址中得到 csdn  qq   ifeng   再麻烦一次。 
      

  4.   


    uses
      RegExpr;procedure TForm1.btn1Click(Sender: TObject);
    var
      reg: TRegExpr;
    begin
      reg := TRegExpr.Create;
      reg.InputString := 'www.qq.com';
      reg.Expression  := '\.(\w+)\.';
      if reg.Exec then
      begin
        Form1.Caption := reg.Match[1];
      end;
      reg.Free;
    end;