正则请教小弟今天看到这样一个正则,测试后发现是匹配字符串的所有内容但是内容中不匹配 <以字母开头的>希望哪位懂正则的大哥,能给我一个一个的讲讲,让我明白一下原理,小弟刚学正则2天看这个真的是天书一样的/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)/
小弟先在这里谢过了!

解决方案 »

  1.   

    ^ 行开始
    [^<]*存在0个或多个非<的字符
    (<(.|\s)+>) 匹配<>符号,中间可以是任意字符
    [^>]*存在0个或多个非>的字符
    $ 行结束| 或者
    ^#(\w+) 以#开始的字母字符串
      

  2.   

    /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)/匹配像
    fdaf<fdsaf>fdasfsdf或者
    #fdasfdsaf这样的字符串
      

  3.   

    他匹配这样的内容:
    1、<任意字符>
    2、以#开头的字母数字和下划线,不包括#
      

  4.   

    各位我一开始也是挨着对手册但是发现<(.|\s)>,  <这里面>本应该是匹配任何字符(除特殊字符)但是发现里面的内容部能以字母开头在这里卡住了还望大家再帮帮我,你们测试一下就会发现看到的和实际的不一样了
      

  5.   

    /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)/
    当两部分看
    第一部分只能匹配:<1个或多个的任意字符和空格>
    第二部分匹配:以"#1个或多个的数字字母下划线"开头的,后面可以是任意字符。
      

  6.   

    dingsongtao第一部分我也认为是匹配一个或者多个任意字符但是我测试发现<f23sdfas3243>这样的不匹配
    <1jklj3kjk23j4k3l4>这样的才匹配的到也就是开始是以字母的它不匹配我就想不通了,麻烦dingsongtao花几分钟测试一下好吗?小弟十分感谢大家的帮助
      

  7.   

    (<(.|\s)+>) 匹配<>符号,中间可以是任意字符,但不是能有空白字符和换行