正则表达式求解:
存在以下几种字符串:
1)abcd
2)(abcd)
3)(abcd
4)abcd)现在想实现这么一个功能,可以不出现括号,但是如果出现括号的话则需要出现两边的括号,不能只出现一边的括号,即只能存在第一种和第二种情况,其他的不行。
如何用正则表达式实现?

解决方案 »

  1.   

    c#下
    (?m)^(abcd|\(abcd\))\s*$不知道java如何描述多行模式。var reg = \^(abcd|\\(abcd\\))\\s*$\m;
    这样试试?
      

  2.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
    <html xmlns="http://www.w3.org/1999/xhtml" >   
    <head>
    <title>test</title>
    <script type="text/javascript">
    window.onload = function(){
    var content = document.body.innerHTML;
    var reg = /[^\(\)]+|\([^\)\(]\)$/gm;
    alert(content.match(reg).length);
    };
    </script>
    </head>
    <body style="height:800px;">
    slfj
    asfjlajsfl
    asfjlskjf
    sdfjlkjslf
    (asdfjlk)
    (sdfasdfj
    asldfjl)
    </body>
    </html>
      

  3.   


    alert(/[^\(\)]+|\([^\)\(]\)$/.test("abcd)")) ==> true