var str = "第一天早晨<br/>刷牙跑步晃悠,跑步晃悠,第二天中午<br/>跑路刷牙晃悠鬼混等等,晃悠鬼混等等。第三天下午<br/>继续游戏随意打发等等等";以上一段字符,如何用正则表达式转成下面这样第一天早晨<br/>@刷牙跑步晃悠,跑步晃悠,|第二天中午<br/>@跑路刷牙晃悠鬼混等等,晃悠鬼混等等。|第三天下午<br/>@继续游戏随意打发等等等就是匹配 "第N天XXX<br/>",分别在前后加上不同的分隔字符谢谢

解决方案 »

  1.   

    var reg=/(第[一二三四五六七八九]天(早晨|中午|下午)\s*<br\/>)/g;
    var   str   =   "第一天早晨 <br/> 刷牙跑步晃悠,跑步晃悠,第二天中午 <br/> 跑路刷牙晃悠鬼混等等,晃悠鬼混等等。第三天下午 <br/> 继续游戏随意打发等等等 "; 
    str=str.replace(reg,"@$1|");
      

  2.   


    var reg=/(第[一二三四五六七八九]天(早晨|中午|下午)\s*<br\/>)/g;
    var str = "第一天早晨 <br/> 刷牙跑步晃悠,跑步晃悠,第二天中午 <br/> 跑路刷牙晃悠鬼混等等,晃悠鬼混等等。第三天下午 <br/> 继续游戏随意打发等等等 ";  
    str=str.replace(reg,"|$1@");
    str=str.substring(1,str.length);//去除第一天早上前面的|号
    alert(str)
      

  3.   

    晕,各位理解错了
    要匹配“第N天XXX <br/>” N可能是1,2个汉字,XXX可能是3,4或7,8个汉字,不是特定的早晨,中午,下午
      

  4.   

    第XX天XXXX...<br/>匹配上面,第一次XX可能是1或2个汉字,第二次XXX时N位字符,长度大概3-10个
      

  5.   


    var reg=/(第[^\u4E00-\u9FA5]{1,2}天(.){3,10}\s*<br\/>)/g;
    var str = "";  
    str=str.replace(reg,"|$1@");
    str=str.substring(1,str.length);//去除第一天早上前面的|号
    alert(str)
      

  6.   

    var reg=/(第[一二三四五六七八九]天.+\s*<br\/>)/g;
    var str = "第一天早晨 <br/> 刷牙跑步晃悠,跑步晃悠,第二天中午 <br/> 跑路刷牙晃悠鬼混等等,晃悠鬼混等等。第三天下午 <br/> 继续游戏随意打发等等等 ";  
    str=str.replace(reg,"@$1|");