试试这个正则分组, 格式必须是固定的
([\\S\\s]*)\\|(\\S+)\\|([\\S\\s]*)\\|([\\S\\s]*)
下面是java版本带分组名的
(?<g1>[\\S\\s]*)\\|(?<g2>\\S+)\\|(?<g3>[\\S\\s]*)\\|(?<g4>[\\S\\s]*)
下面是测试的代码。
[mw_shl_code=java,true] String pattern = "(?<g1>[\\S\\s]*)\\|(?<g2>\\S+)\\|(?<g3>[\\S\\s]*)\\|(?<g4>[\\S\\s]*)";
String str = "2017-08-02 13:10:19.094|HSFBizProcessor-5-thread-155|DEBUG|setMember begin typeId=[qps_push_waybill], key=[9891003749887], expireTime=[15552000]";
StringBuffer buf = new StringBuffer("");
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(str);
if(m.find()){
System.err.println("true ");
System.err.println(m.group("g1") + " , "+ m.group("g2") + " , " + m.group("g3") + " , " +m.group("g4") );
}[/mw_shl_code] |