谁帮我看看这段 正则表达式

积木 2005-10-21 10:39:52
我这段代码很简单,就是检查传进来的 floatStr是不是全是数字,但是正则表达式写的不对,
谁帮我看看,谢谢了哈。
private boolean _checkFloat(String floatStr){
floatStr.trim();
Pattern pattern = Pattern.compile("(^\\d*$)");
Matcher matcher = pattern.matcher(floatStr);
boolean b = matcher.find();
return b;
}
...全文
348 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
地狱余烬 2005-10-31
  • 打赏
  • 举报
回复
([\w-]+:[^:;]+;)+
低调的小青蛙 2005-10-21
  • 打赏
  • 举报
回复
如果是用 find 来判断,那么就需要前后加上 "^"和"$" 才能达到“是不是全是数字”的效果,
如果是用 matches 来判断,则可以不要 "^"和"$"

private boolean _checkFloat(String floatStr)
{
Pattern.matches("\\d+(\\.\\d*)?|\\.\\d+", floatStr.trim());
}

低调的小青蛙 2005-10-21
  • 打赏
  • 举报
回复
// 如果是用 find 来判断,那么就需要前后加上 "^"和"$" 才能达到“是不是全是数字”,如果是用 matches 来判断,则可以不要 "^"和"$"

private boolean _checkFloat(String floatStr)
{
Pattern.matches("\\d+(\\.\\d*)?|\\.\\d+", floatStr.trim());
}

低调的小青蛙 2005-10-21
  • 打赏
  • 举报
回复
\d+(\.\d*)?|\.\d+

能够匹配的有:

123
123.
123.55
.678
believefym 2005-10-21
  • 打赏
  • 举报
回复
p = Pattern.compile("(^\\d+(\\.\\d+){0,1}$)");
superslash 2005-10-21
  • 打赏
  • 举报
回复
太烦了把,这样可以吗?
"\\d+\\.\\d+"
gogon 2005-10-21
  • 打赏
  • 举报
回复
p=Pattern.compile("[^//d//.]");
Matcher matcher = pattern.matcher(floatStr);
boolean b = !matcher.find();
//这里如果找不到不是 数字 或者 小数点的符号,则返回 true;所以要加上!
积木 2005-10-21
  • 打赏
  • 举报
回复
似乎我写得正则表达式没有问题,我的方法用错了。。。汗 :)
积木 2005-10-21
  • 打赏
  • 举报
回复
我就是要一个支持小数的正则表达式,但是不知道为什么,我写得总是通不过,很郁闷。。。
xmankevin1980xman 2005-10-21
  • 打赏
  • 举报
回复
学习中
believefym 2005-10-21
  • 打赏
  • 举报
回复
或者改成
p = Pattern.compile("(^\\d+(\\.[0-9]+)*$)");
可以支持小数

不知道楼主需要的数字具体是要怎么样的呢
believefym 2005-10-21
  • 打赏
  • 举报
回复
*的话也可以表示0个,
("(^\\d+$)")表示一个或多个数字连接而成的字符串
积木 2005-10-21
  • 打赏
  • 举报
回复
等我下班了就结帖
3ks :)
低调的小青蛙 2005-10-21
  • 打赏
  • 举报
回复
经过测试,还是不要哪个 ? 吧:

([\w-]+:[^:;]+;)+


低调的小青蛙 2005-10-21
  • 打赏
  • 举报
回复
1. "\w" 只包含 A-Za-z0-9_ ,不包含 "-" 和 ",()%" 这些。

2. 我在 ; 后面加了个 ?,效果就是最后一个 ; 可以不写
低调的小青蛙 2005-10-21
  • 打赏
  • 举报
回复
([\\w-]+:[^:;]+;?)+
积木 2005-10-21
  • 打赏
  • 举报
回复
:)
谢谢大家,我这里还有一个正则表达式,

var1:value1;var2:value2;var3:value3;

对于var 只要是字符就可以
对于 value 只要是字符就可以

其中 var:value; 这样的组合至少要出现一次
不许出现 var:; 这样的表达式,
更不许出现 :value;这样的表达式。

这个怎么写?我写得总是不对 :( 顺便贴出来我写的。
Pattern.matches("((\\w)+:(\\w+);)+",styleStr)

测试字符串是
background-color:rgb(0%,0%,100%);border-color:rgb(0%%,100%,100%);border-width:2;transparency:0.5;

谢谢大家 :)

62,629

社区成员

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

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