正则表达式

jiangxiayang 2011-09-29 05:32:23
正则表达式 如果是整数最多7位,如果是小数,小数点前最多7位,小数点后最多两位怎么写??
...全文
141 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Darling_sheep 2011-10-05
  • 打赏
  • 举报
回复
应该是这样:
\\d{1,7}(\\.\\d{1,2})?$
因为“\”是转义字符,所以应该是"\" + "\d"。
emjava 2011-10-05
  • 打赏
  • 举报
回复
在正则表达式中。两个\\表示的是一个\,这叫做转译字符
qybao 2011-09-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 qybao 的回复:]
引用 9 楼 k3108001263 的回复:
还是忘了‘-’

String regex = "^\\-?[1-9]\\d{0,6}(\\.\\d{1,2})?$|^\\-?0(\\.\\d{1,2})?$";

你这个还是没达到 0.12 也能通过
因为你的数字是 [1-9]开头的
[/Quote]
8好意思,没看到你后面还带了个 |0开头的
qybao 2011-09-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 k3108001263 的回复:]
还是忘了‘-’

String regex = "^\\-?[1-9]\\d{0,6}(\\.\\d{1,2})?$|^\\-?0(\\.\\d{1,2})?$";
[/Quote]
你这个还是没达到 0.12 也能通过
因为你的数字是 [1-9]开头的
打油的程序员 2011-09-29
  • 打赏
  • 举报
回复
还是忘了‘-’

String regex = "^\\-?[1-9]\\d{0,6}(\\.\\d{1,2})?$|^\\-?0(\\.\\d{1,2})?$";
打油的程序员 2011-09-29
  • 打赏
  • 举报
回复



//上面都错了,写这个吧,比较完美
String sourceString = "0.2";
String regex = "^\\-?[1-9]\\d{0,6}(\\.\\d{1,2})?$|^0(\\.\\d{1,2})?$";
if(sourceString.matches(regex)) System.out.println("correct!");


打油的程序员 2011-09-29
  • 打赏
  • 举报
回复

只是正数,而且小数末位允许0
Java code


String sourceString = "0";
String regex = "^[1-9]\\d{0,6}(\\.\\d{1,2})?$";
if(sourceString.matches(regex)) System.out.println("correct!");





不包括负数,但包括0,而且小数末位允许0



String sourceString = "10000";
String regex = "^[1-9]\\d{0,6}(\\.\\d{1,2})?$|^0$";
if(sourceString.matches(regex)) System.out.println("correct!");







包括负数,包括0,而且小数末位允许0



String sourceString = "10000";
String regex = "^\\-?[1-9]\\d{0,6}(\\.\\d{1,2})?$|^0$";
if(sourceString.matches(regex)) System.out.println("correct!");



qybao 2011-09-29
  • 打赏
  • 举报
回复
修改一下LS的
String regex = "[-]?([0]|[1-9]\\d{0,6})([.]\\d{1,2})?";
System.out.println("-012.12".matches(regex));
System.out.println("-0.12".matches(regex));
System.out.println("-1.12".matches(regex));
System.out.println("-1234567.12".matches(regex));
System.out.println("-12345678.12".matches(regex));
System.out.println("-1234567".matches(regex));
打油的程序员 2011-09-29
  • 打赏
  • 举报
回复
不包括复数,而且小数末尾允许0

String sourceString = "-890";
String regex = "^[1-9]\\d{1,6}(\\.\\d{1,2})?$";
if(sourceString.matches(regex)) System.out.println("correct!");

jiangxiayang 2011-09-29
  • 打赏
  • 举报
回复
这个不对啊
潇水汀寒 2011-09-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chenjian98306 的回复:]

^\d{1,7}(\.\d{1,2})?$
[/Quote]
为什么是\d 怎么不是\\d呢
我匹配邮箱用的"\\w{2,20}@\\w+\\.(com|cn|net)"
里面要是写成\w会出错的,windows系统,求解
chenjian98 2011-09-29
  • 打赏
  • 举报
回复
^\d{1,7}(\.\d{1,2})?$
longds7 2011-09-29
  • 打赏
  • 举报
回复
^\d{1,7}(\.\d{1,2})?$

62,615

社区成员

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

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