posts - 191,  comments - 201,  trackbacks - 0
第一次作业时,判断数字那个方法就想到用正则了,可在MSDN里一看,Match只是在指定字符串里查找匹配表达式的部分,而我要的功能确是让字符串符合表达式,当时,感觉时间紧张,就此作罢~~

今天看到 检查用户名,密码,我又想起了正则。记忆中正则有这样的功能的啊,为何我就没找到相关方法呢?于是,今天又花时间看起了MSDN。功夫不负有心人,看到了^与$的功能,一头一尾,不就可以当完全匹配来用吗?于是,写了如下方法:

public static bool CheckPassword(string password)
        
{
            
return Regex.IsMatch(password, "^[0-9a-zA-Z]{6,16}$");
            
        }


public static bool CheckName(string name)
        
{
            
return Regex.IsMatch(name, "^[a-zA-Z]{1,20}$");
        }

再想下那个CheckNumber,不也能很快解决吗?
有兴趣的可以试着写一下~~


8.9追加
昨天写文时,有点晚了,所以COPY了已有的代码,就完结了,并没写出CheckNumber,回家时,仔细考虑了下,感觉也得花点时间才写的出来~~
今天看了cypha的文,地址如下:
http://www.blogjava.net/challenxing/archive/2006/08/09/62497.html
看他的表达式那么短,于是测试了下,有些方面没考虑到~~
如:开头多个0,结尾小数点等。
于是改进了下,附带一提,vs2005下需要两个“\”才不报错~~
(一篇文里不能用两次代码吗?点了居然没反应-_-|||)
public bool CheckNumber(String number)
        {
            return Regex.IsMatch(number, "^[-|+]?([1-9][0-9]*\\.?[0-9]+|0\\.[0-9]+)|[0-9]$");
        }

最后加了[0-9]是因为,前面一部分将一位数给忽略了~~
如有更简洁更好的表达式,望赐教~
posted on 2006-08-08 20:57 李威 阅读(135) 评论(3)  编辑  收藏


FeedBack:
# re: 正则表达式~~[8.9追加]
2006-08-09 15:26 | 茗香花神
先感谢李威兄弟,让我学到了新知识。

public bool CheckNumber(String number)
{
return Regex.IsMatch(number, "^[-|+]?([1-9][0-9]*\\.?[0-9]+|0\\.[0-9]+)|[0-9]$");
}
这个类是有bug的 11-1 11a 这些都会返回正确。
return Regex.IsMatch(number, "^[-|+]?(([1-9][0-9]*\\.?[0-9]+|0\\.[0-9]+)|[0-9])$");
加个括号就行了 如果不想输入2个\\在字符串前面+个"@",如下:
@"^[-|+]?([1-9][0-9]*\.?[0-9]+|0\.[0-9]+)|[0-9]$"






  回复  更多评论
  
# re: 正则表达式~~[8.9追加]
2006-08-09 15:37 | 李威
感谢提醒~~最后的“|[0-9]”应该加到括号里~~马虎要不得啊
"^[-|+]?([1-9][0-9]*\\.?[0-9]+|0\\.[0-9]+|[0-9])$"

这个@非常耐看呀~~  回复  更多评论
  
# re: 正则表达式~~[8.9追加]
2006-08-09 16:35 | cypha
呵呵,这几点我也考虑到了,只是有些东西的定义不一样,在原来的一些老的计算器中(像8位的小计算器)是可以出现1.或者.111,不过这个是我在很小时玩的,不知到现在还能不能用这种不规范的用法了。  回复  更多评论
  



标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-08-09 12:30 编辑过
 
 
相关链接:
网站导航:
<2006年8月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(4)

随笔分类(148)

随笔档案(191)

相册

积分与排名

  • 积分 - 47287
  • 排名 - 213

最新随笔

最新评论