我試圖解析這個字符串,Java正則表達式捕獲組包含空間,爲什麼?
"斬釘截鐵 斬釘截鐵 [zhan3 ding1 jie2 tie3] /to chop the nail and slice the iron (idiom)/resolute and decisive/unhesitating/definitely/without any doubt/";
有了這個代碼
private static final Pattern TRADITIONAL = Pattern.compile("(.*?) ");
private String extractSinglePattern(String row, Pattern pattern) {
Matcher matcher = pattern.matcher(row);
if (matcher.find()) {
return matcher.group();
}
return null;
}
但是,由於某種原因,返回的字符串包含在後面加上一個空格
org.junit.ComparisonFailure: expected:<斬釘截鐵[]> but was:<斬釘截鐵[ ]>
有我的模式有問題嗎? 我也曾嘗試
private static final Pattern TRADITIONAL = Pattern.compile("(.*?)\\s");
但無濟於事
我也試圖與在模式的結尾兩個空間相匹配,但它不匹配(只有一個空格)。
嗯,它的工作。非常感謝! – 2012-07-07 09:56:29
只是一個建議:爲什麼不使用'(。*?)+'來覆蓋多個空格? – 2012-07-07 10:56:16
Marko,我相信格式是固定在一個空間..所以我寧願保持它,除非我發現,否則 – 2012-07-09 11:04:34