正则表达式中有几中括号,比如:()、{}、[]
这几个的含义谁能给我说说吗?我弄糊涂了!
比如,我测试了下面的两种写法,结果完全不一样:
.+
[.]+
这两个的含义是不一样的(测试结果)。但是我不明白。

解决方案 »

  1.   

    这样肯定是不同的。在正则表达式中,.是代表任一字符,.+是代表任意一个或多个字符,[]括号代表括号中任一字符,[.]是代表"."号,[.]+是代表一个或多个"."号,和\.+的意思是一样的。正则表达式中()的作用和在数学中的很像,就是把括起来的内容当作一个整体。
    []的作用上面说了,{n},匹配前面的字符n次,{n,}匹配前面的字符n次或更多,{n,m}匹配前面的字符最少n次,最多m次,如果n为0,可以不指定。
      

  2.   

    另外好像还有<>这个括号,也不懂!
      

  3.   

    http://www.microsoft.com/china/msdn/library/webservices/asp.net/regexnet.mspx?pf=true
    看看MSDN 是怎么说的!
    这个连接里还有好多正则表达式的库,感兴趣的可以去学习一下
    几乎常用的都有
      

  4.   

    看看这个,介绍得很清楚。http://www.regexlab.com/zh/
      

  5.   

    举个例子:[a-f]{2,5}(abc)+
    [a-f]指a至f的任意某个字符
    {2,5}指前面a至f中任意字符取2至5个。。比如ab,或cfb,或ddddd等
    (abc)就是小括号的里的字符串没有特别的意义,但是后面跟了个+,表示匹配括号里的字符串(即abc)1到无数次。。则可匹配abc,或abcabcabc等
      

  6.   

    楼上都给出了完整介绍和例子,俺再补充一些定义(摘抄自“VBS 5.5”)一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
      

  7.   

    chequan(chequan) ( ) 信誉:100  2006-04-04 12:50:00  得分: 0  
     
     
       谢谢!
    但是\d{7,8}好像也有写成[\d]{7,8}的呀。那这两个有何区别?谢谢!
      
     
    ----------------------------------
    没区别。。就相当于 1+2=(1+2) chequan(chequan) ( ) 信誉:100  2006-04-04 13:02:00  得分: 0  
     
     
       另外好像还有<>这个括号,也不懂!
      
     
    ---------------------------------
    <>这个仅仅是般的字符而已跟abc一样。。没有特殊意义。。
      

  8.   

    好文﹐有一段時間沒有上CSDN!看到的第一篇好文!