求一个正则表达式,让它不匹配某个字符串

srxumin 2022-10-06 07:25:05

1. 输入内容:
中国内蒙古自治区永丰大道8号
中国内蒙古自治区小心桥东街4号
中华路528号

2. 输出内容:
永丰大道8号
小心桥东街4号
中华路528号

3. 处理规则:
((?!自治区).)+[路道街]\d+号


这个是错误的表达式,它会把把“自治区”中的“治区”匹配进来,请问应该怎么改正?

 

这道题用

[^区]*[路道街]\d+号$

也可以达到目的,但是题目强调的是“字符串”,所以答案无法通过

...全文
成就一亿技术人!
拼手气红包 1.00元
209 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
h2plus0 2022-10-07
  • 打赏
  • 举报
回复
1人已打赏
1

稍微简化了一下, 没有匹配 路道街。。。

    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");
            }
        }
    }

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧