我想匹配 「\ B \ W +:」 裏面的字符串 「搜索\ nPrefix與標籤:應用程序:或文字:」Android的模式匹配(不匹配)
代碼如下:
String s = "Search\nPrefix with tag: app: or text:";
SpannableString str = SpannableString.valueOf(s);
Pattern regex = Pattern.compile("\\b\\w+:");
Matcher m = regex.matcher(str);
while(m.find()) {
// do stuff
}
我在Eclipse中跟蹤了調試器的代碼,while循環從不輸入,這意味着m.find()返回false。 我想正則表達式更改爲簡單
Pattern regex = Pattern.compile("app:");
它應該工作,對不對?這是從字符串相同的明確文本。但仍然沒有匹配。 我懷疑匹配器在到達字符串中的換行符時停止匹配。不知何故,必須有一個標誌或一些東西來告訴匹配器掃描整個字符串。
應該按照這種方式工作。也許它不喜歡'SpannableString',試試'Matcher m = regex.matcher(s);' – zapl 2012-04-19 16:56:24
爲了確保,我試過這個字符串,它是一樣的。我需要spannable,因爲我想爲比賽着色,並且我需要m.start()&m.end()來爲每個m.find()做這件事。 – ilomambo 2012-04-19 18:02:33
我的錯誤,再次。我簡化了代碼在這裏顯示它,但實際上while條件是m.find()&& --count> 0,並且count是罪魁禍首。正則表達式是確定的。結論是:「如果你太累不能工作,就去睡吧」。 – ilomambo 2012-04-19 18:09:57