【发布时间】:2016-11-23 21:35:44
【问题描述】:
1) Pattern pattern = Pattern.compile("34238");
Matcher matcher = pattern.matcher("6003 Honore Ave Suite 101 Sarasota Florida,
34238");
if (matcher.find()) {
System.out.println("ok");
}
2) Pattern pattern = Pattern.compile("^[0-9]{5}(?:-[0-9]{4})?$");
Matcher matcher = pattern.matcher("34238");
if (matcher.find()) {
System.out.println("ok");
}
上述代码的输出是:ok
但是下面的代码没有打印任何东西:
Pattern pattern = Pattern.compile("^[0-9]{5}(?:-[0-9]{4})?$");
Matcher matcher = pattern.matcher("6003 Honore Ave Suite 101 Sarasota Florida, 34238");
if (matcher.find()) {
System.out.println("ok");
}
不打印ok的原因是什么?我在这里也使用相同的模式。
【问题讨论】:
-
为什么不使用
"6003 Honore Ave Suite 101 Sarasota Florida, 34238".contains("34238")? -
这是美国邮政编码格式。我们不确定是否会得到相同的结果
-
最后我必须找到那句话有没有美国邮政编码的天气
-
这两个块中哪一个产生ok?
-
第一和第二块
标签: java regex pattern-matching matcher