/\"[^\"]*s[^\"]*\"/
这样肯定在引号中间,不过会使"aaaa"s"bbbb"也被匹配到

解决方案 »

  1.   

    刚刚错了^("[\w^s]")*"[^"s]("[\w^s]")*"$
      

  2.   

    <script type="text/javascript">
    //<![CDATA[
     var str="aaasss\"'sss's\"sss'ssss'sd"
     alert(str.replace(/[\s\S]*/,function(match){
      var temp='';
      match=match.replace(/\"[\s\S]*?"/g,'');
      match=match.replace(/(\'[^']*?s[^']*?\')/g,function($0,$1){
       temp+=$1;
      })
      return temp;
     }))
    //]]>
    </script>
      

  3.   

    btbtd,请问*?连一块代表什么意思啊?还有$0,$1代表什么意思?
    能告诉我一下吗?我的msn是[email protected],或者在这个上面告诉我也行,谢谢了
      

  4.   

    ? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。
    * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。正则导向的引擎是“急切的”,所以它会急着报告它找到的第一个匹配。而不是继续回溯,即使可能会有更好的匹配
    一个用于修正以上问题的可能方案是用“*”的惰性代替贪婪性。你可以在“*”后面紧跟一个问号“?”来达到这一点
    这告诉正则引擎,尽可能少的重复上一个字符例如,你可能要搜索一个 HTML 文档来查找一处包含在 H1 标记中的章节标题。在文档中该文字可能具有如下形式:<H1>Chapter 1 – Introduction to Regular Expressions</H1>下面的表达式匹配从开始的小于号 (<) 到 H1 标记结束处的大于号之间的所有内容。/<.*>/VBScript 的正则表达式为:"<.*>"如果所要匹配的就是开始的 H1 标记,则下述非贪婪地表达式就只匹配 <H1>。/<.*?>/或者"<.*?>"通过在 '*'、 '+' 或 '?' 限定符后放置 '?',该表达式就从贪婪匹配转为了非贪婪或最小匹配。
    $0,$1:匹配的子表达式
    $0以后的子表达式用()来匹配
    ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。