用正则表达式匹配非0且非114

zyhong1989 2011-09-22 03:49:13
我想用正则表达式匹配一个非0且非114的数字,请高手指点这个正则表达式怎么写。

public class Test {
public static void main(String[] args) {
String str = "114";
System.out.println(str.matches("^(0|114)"));
}
}

以上代码不能得到正确结果
...全文
142 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
softroad 2011-09-22
  • 打赏
  • 举报
回复

String str = "0s14dfd22";
Pattern p = Pattern.compile("[^0,114]+");
Matcher m = p.matcher(str);

while(m.find()) {
System.err.println(m.group());
}
shine333 2011-09-22
  • 打赏
  • 举报
回复
    String regex = "^(" +
"[1-9]" + // 个
"|" +
"[1-9]\\d" + // 十
"|" +
"[1-9]\\d{3,}" + // 千以上
"|" +
"[2-9]\\d{2}" + // 2xx-9xx
"|" +
"1[02-9]\\d" + // 10x,12x-19x
"|" +
"11[0-35-9]" + // 110-113,115-119
")$";
for (int i = 0; i < 10000; i++) {
String str = i+"";
if (!str.matches(regex) && i != 0 && i != 114) {
throw new Exception(str);
}
}
shiyiwan 2011-09-22
  • 打赏
  • 举报
回复
Pattern p1 = Pattern.compile("(0|114){1}");
取反
zyhong1989 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 softroad 的回复:]
[^0,114]+
[/Quote]
不行,14就不行了
softroad 2011-09-22
  • 打赏
  • 举报
回复
[^0,114]+
softroad 2011-09-22
  • 打赏
  • 举报
回复
^[0,114]

50,523

社区成员

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

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