黑马程序员技术交流社区

标题: 正则表达式是哪方面的内容? [打印本页]

作者: 汪磊    时间: 2012-12-10 10:53
标题: 正则表达式是哪方面的内容?
我看了很多.NET相关书上都没有 提正则表达式!  他属于哪方面的呢?
作者: 刘文超    时间: 2013-1-1 08:37
lz你好,我对它了解一点就跟你说说吧
正则主要用于验证一些字符是否与我们期待的格式相匹配,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。
例如我们注册用户的时候,要是填写邮箱的话,咱们程序要严格控制用户不能只是非null就行了、必须XXX@.com/cn/gov之类的、
这个正则表达式大概是这么用的,看下边代码。
如果跟正则匹配错了,就不让他注册,告诉他邮箱格式不正确。
不过正则也不太容易写出来,要自己好好认真学习一下,网上资源很多的。
代码:
  1. import java.io.*;
  2. public class CheckEmail
  3. {  
  4.         public static boolean checkEmail(String email)
  5.                 {// 验证邮箱的正则表达式
  6.                         String format = "\\p{Alpha}\\w{2,15}[@][a-z0-9]{3,}[.]\\p{Lower}{2,}";
  7.                         //p{Alpha}:内容是必选的,和字母字符[\p{Lower}\p{Upper}]等价。如:200896@163.com不是合法的。
  8.                         //w{2,15}: 2~15个[a-zA-Z_0-9]字符;w{}内容是必选的。 如:dyh@152.com是合法的。
  9.                         //[a-z0-9]{3,}:至少三个[a-z0-9]字符,[]内的是必选的;如:dyh200896@16.com是不合法的。
  10.                         //[.]:'.'号时必选的;        如:dyh200896@163com是不合法的。
  11.                         //p{Lower}{2,}小写字母,两个以上。如:dyh200896@163.c是不合法的。
  12.                         if (email.matches(format))
  13.                                 {
  14.                                         return true;// 邮箱名合法,返回true
  15.                                 }
  16.                         else
  17.                                 {
  18.                                         return false;// 邮箱名不合法,返回false
  19.                                 }
  20.                 }
  21.                
  22.         public static void main(String[] args) throws Exception
  23.         {
  24.                 String email = "cc**365@163.com"; // 需要进行验证的邮箱
  25.                  while(true)
  26.                 {
  27.                          email = new BufferedReader(new InputStreamReader(System.in)).readLine();
  28.                         if (CheckEmail.checkEmail(email))// 验证邮箱
  29.                         {            
  30.                                 System.out.println(email+"\n是合法的邮箱名。");
  31.                         }
  32.                         else
  33.                         {
  34.                                 System.out.println(email+"\n不是合法的邮箱名。");
  35.                         }
  36.                 }
  37.         }
  38. }
复制代码

作者: 李拴同    时间: 2013-1-3 10:21
字符串里边的内容 是一套规则吧,用于判断其他的元素符合他 书上就是这样说的。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2