0

我正在尝试在字符串“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:");

它应该可以工作,对吧?它与字符串中的显式文本相同。但仍然没有匹配。我怀疑匹配器在到达字符串中的换行符时会停止匹配。而且必须有一个标志或其他东西来告诉匹配器扫描整个字符串。

4

1 回答 1

1

又是我的错。
我简化了代码以在此处显示,但实际上 while 条件是

while(m.find() && --count>0)

,而伯爵是罪魁祸首。正则表达式没问题。

结论是:“工作累了就睡吧”

于 2012-04-21T16:16:31.117 回答