关于正则表达式中的排除问题

hjxyy 2008-07-15 07:10:05
我想要写正则表达式,来匹配除了078之外的三位数,其实我就是想理解下[^]如何排除多位数.请问该如何写?
比如“078中国146浙江136台州”这样一个字符串中,我想把146,136给取出来,也就是除了078之外的三位数都要.
...全文
190 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjxyy 2008-07-15
  • 打赏
  • 举报
回复
哦!明白了。谢谢
joejoe1991 2008-07-15
  • 打赏
  • 举报
回复
(?<!xxx)
要求所处缝隙的左边不能为匹配xxx


\\d{3}(? <!078)

也就是\\d{3}所匹配到的三个数字的后面
的那个缝隙的左边不能是078

其实也就是\\d{3}匹配到的那三个数字不能是078

hjxyy 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 joejoe1991 的回复:]
\\d{3}(? <!078)
[/Quote]
仁兄正解呀。能不能解释一下?
hjxyy 2008-07-15
  • 打赏
  • 举报
回复
zhaohxcs 你说得很对。我就是这个意思。
你所说的用正则来判断是"078"的方案是可行的。不过我确实想知道能不能用[^]来否定一个字符串.
joejoe1991 2008-07-15
  • 打赏
  • 举报
回复
\\d{3}(?<!078)
kukufly 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhaohxcs 的回复:]
为什么非要用正则来判断出不是“078”的呢?
用正则来判断是“078”的不行吗?如果返回false,那就是没有“078”了
[/Quote]
zhaohxcs 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 joejoe1991 的回复:]
[\\d&[^078]]
[/Quote]

[^078]是把0,7,8三个数字都给排除了
但按照LZ的要求,只是078这个组合不行,其它组合(如087,789等等)是可以的。
zhaohxcs 2008-07-15
  • 打赏
  • 举报
回复
为什么非要用正则来判断出不是“078”的呢?
用正则来判断是“078”的不行吗?如果返回false,那就是没有“078”了
joejoe1991 2008-07-15
  • 打赏
  • 举报
回复
[\\d&[^078]]

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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