51,407
社区成员
发帖
与我相关
我的任务
分享1. 输入内容:
中国内蒙古自治区永丰大道8号
中国内蒙古自治区小心桥东街4号
中华路528号
2. 输出内容:
永丰大道8号
小心桥东街4号
中华路528号
3. 处理规则:
((?!自治区).)+[路道街]\d+号
这个是错误的表达式,它会把把“自治区”中的“治区”匹配进来,请问应该怎么改正?
这道题用
[^区]*[路道街]\d+号$
也可以达到目的,但是题目强调的是“字符串”,所以答案无法通过
稍微简化了一下, 没有匹配 路道街。。。
static void testRegexp7() {
String[] s = {"中国内蒙古自治区永丰大道8号",
"中国内蒙古自治区小心桥东街4号",
"中华路528号"};
Pattern p = Pattern.compile("(.*自治区)?(.*号)");
for(int j=0;j<s.length;j++) {
Matcher m;
m = p.matcher(s[j]);
if (m.find()) {
System.out.println(m.group(2));
}
else {
System.out.println("NOT Found");
}
}
}