html代码<div id="vhtml">
    <span cid="a001" align="center" >xx</span>
    <span cid ='b001' align="center" >xx</span>
    <span cid= "c"  align="center" >xx</span>
</div>
如果只是匹配标签中属性为cid的正则表达式如下cid\s*=\s*(("[^"]*")|('[^']*')|([^ ]+))得到的结果是
 cid="a001",cid ='b001',cid= "c" 现在想加个条件,就是属性对应的值是b开头匹配,
只想得到cid ='b001';只想用一条正则表达式完成,因为要嵌入到java的代码中使用。
请问这需要怎么修改上面的js代码?
万分感谢,对js不熟悉,弄了一周还没弄出来,请高手指导,
分不够再加。
谢谢了。

解决方案 »

  1.   

    补充下,
    就是属性对应的值是包含b的匹配,
    是不是b开头的都行,只要包办b字符就OK。
    谢谢。
      

  2.   


    cid\s*=\s*(("[^"b]*b[^"]*")|('[^'b]*b[^']*')|([^ ]+))
      

  3.   

    万分感谢,基本OK,
    因为我例子没说清楚,有点点遗憾,
    就是 如果 没有引号的情况下,比如
    <span cid=e  align="center" >xx</span>cid\s*=\s*(("[^"b]*b[^"]*")|('[^'b]*b[^']*')|([^ ]+))上面这个js 也会获取cid=e值。
    其实也就是后面的([^ ]+)不知道怎么改,我修改了几下,总是有点小问题。再次麻烦,谢谢。
      

  4.   

    你是想要<span cid=e align="center" >xx</span>这样也能获取?还是要求有“b”????
      

  5.   

    额,如果cid=e这样的不符规则,直接把|([^ ]+)去掉就好了如果是一开始的要求,把([^ ]+)改为[^ b]*b[^'"]*就好了