【发布时间】:2014-09-21 06:25:00
【问题描述】:
我的以下程序打印出我不理解的奇怪结果,我想这是由于我对 Java Regex 缺乏深入的了解。所以我希望先按句点拆分testStr,然后检查每个句子是否包含字母或数字。但令人惊讶的是,我得到了以下输出,这与我的愿望相反:
blah blah1 is not a character!
blah blah2 is not a character!
blah blah3 is not a character!
??** is not a character! // only this output is expected
我的代码如下:
String testStr = "blah blah1. blah blah2. blah blah3. ??**...";
String[] myStrArray = testStr.split("[.]");
System.out.println("length of myStrArray is: " + myStrArray.length);
for (String str : myStrArray) {
if (!Pattern.matches("\\w+", str)) {
System.out.println(str + " is not a character!");
continue;
}
System.out.println("got a meaningful sentence " + str.trim());
}
【问题讨论】:
-
你的预期输出是什么?
-
我希望得到除 ??** 之外的所有句子的“得到一个有意义的句子”
-
blah blah1 is not a character!不仅包含字母,还包含空格和!