我想在字符串“Search \ nPrefix with tag:app:or text:”中匹配“\ b \ w +:”
代码如下:
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:");
它应该工作,对吧?,它是字符串中的明确文本。但仍然没有比赛。 我怀疑匹配器在到达字符串中的换行符时会停止匹配。不知何故,必须有一个标志或某些东西告诉匹配器扫描整个字符串。
答案 0 :(得分:0)
我的错误,再次 我简化了代码以在此处显示,但在实践中,while条件是
while(m.find() && --count>0)
,计数是罪魁祸首。正则表达式没问题。
结论是:“如果你太累了,就去睡觉”