文本如下
    编剧:<M>彭浩翔<br/>主演:<M>古天乐 \ <W>张钰 \ <W>陈慧琳<br/>要求写一个正则表达式提取出主演名结果应该是:古天乐 张钰 陈慧琳

解决方案 »

  1.   

    <script>
    var str = "编剧:<M>彭浩翔<br/>主编:<M>古天乐 \ <W>张钰 \ <W>陈慧琳<br/>";
    var index = str.indexOf("主编");
    str = str.substring(index, str.length);
    var reg = /[\u4E00-\u9FA5]{2,4}/g;
    str = str.match(reg);
    str = str.join("、");
    str = str.substring(0, 2) + ":" + str.substring(3, str.length);
    alert(str);
    </script>
      

  2.   

    try...<script type="text/javascript"> 
        var data = "编剧:<M>彭浩翔<br/>主演:<M>古天乐 \ <W>张钰 \ <W>陈慧琳<br/>";
        var reg1 = /主演:(.*?)(<\/?br[^>]*>|$)/ig;
        var reg2 = /<[^>]*>|\\/g;
        if(reg1.test(data))
        {
            alert(RegExp.$1.replace(reg2, ""));
        }
    </script>
      

  3.   

    To lxcnn:
        我用VC开发,使用的是boost::regex。
        您给出的方案是用两条正则了,能不用replace,直接用一个正则提出来吗?
      

  4.   

    To kyzy_yy_pm:
    主演名字不一定全是中文。
      

  5.   

    主演:(?:<.>([^<>]*?)(?: \ )?)*?<br/>
    这是我自己配的
    只能提取出“陈慧琳”
      

  6.   


    <script type="text/javascript">
    <!--
    var str = "编剧:<M>彭浩翔<br/>主编:<M>古天乐 \ <W>张钰 \ <W>陈慧琳<br/>";
        var re = /<[MW]>([^MW<>\\]+)/g;
        var re1 = /主编:(<[MW]>([^MW<>\\]+))+/;
        var str1 = str.match(re1)[0];
        var arr = str1.match(re);
        for(var i = 0 ; i < arr.length; i++){
            alert(arr[i].replace(/<[MW]>/,""))
        }
    //-->
    </script>
      

  7.   

    To kevinwon1985:
    关键是要一条
      

  8.   


    <script type="text/javascript">
    <!--
        var str = "编剧:<M>彭浩翔<br/>主编:<M>古天乐 \ <W>张钰 \ <W>陈慧琳<br/>";
        var re1 = /主编:(<[MW]>([^MW<>\\]+))+/;
        var arr = str.match(re1);
        alert(arr[0].replace("主编:","").replace(/<[MW]>/g,""));
    //-->
    </script>最后replace还是需要一个正则.
    C中有没replaceAll?有点话最后一句改成arr[0].replace("主编:","").replaceAll("<M>","").replaceAll("<W>","");
    没有就没办法了
      

  9.   


    不了解boost::regex,不同的语言,支持的语法不同,这个不是通用的,就比如.NET中可以像下面这样写,而JavaScript中却不可以
    string test = " 编剧:<M>彭浩翔<br/>主演:<M>古天乐 \\ <W>张钰 \\ <W>陈慧琳<br/>";
    Regex reg = new Regex(@"(?i)主演:(?:<[MW]>\s*([^\s\\<]+)\s*\\?\s*)+");
    Match m = reg.Match(test);
    if (m.Success)
    {
        foreach (Capture c in m.Groups[1].Captures)
        {
            richTextBox2.Text += c.Value + "\n";
        }
    }