日期:2014-05-18  浏览次数:20648 次

求使用正则提取一个字符串

****************************************************                            
               *通 知*                                                    
*这里是通知的信息, 刚发过贴。摘抄了一篇新闻导致删帖了,
给大家造成的打扰非常抱歉。
****************************************************                            
*这里是标题萨芬             YI:12345/12345                                
*这里是标题撒旦法2                                    
                                     YI:678907/12345                            
*这里是标题三撒旦法                                  
                                     YI:asdfwe/12345 

需要提取其中的字符串和YI指令。
例如:
标题:这里是标题萨芬
YI指令: YI:12345/12345  
我写的正则如下,但是第一条数据提取会出现问题。

String regEx2 = "\\*{1}([\\s\\S]*?)YI:(\\w+)/(\\w+)";
Pattern pat2 = Pattern.compile(regEx2);
StringBuffer bf2=new StringBuffer(128);
Matcher mat2 = pat2.matcher(content); 
while (mat2.find()) {
      bf2.append(mat2.group().replace("*","").replace("YI:", "").trim()).append(",");
    }
    int len2 = bf2.length();
    if (len2 > 0) {
      bf2.deleteCharAt(len2 - 1);
    }

希望大家能帮帮忙, 非常感谢!
------解决方案--------------------
上面的 yi后面没匹配上, "\\*(.[^*]*?)\\s(YI.*?)\\s"