java基础篇---正则表达式

java基础篇---正则表达式
      正则表达式在许多语言,例如Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。正则在JDK1.4之后引入到java中,最早时候的JDK,如果想要使用正则,则需要添加Apache提供的一个正则开发包。Pattern,Matcher类想要在程序中应用正则表达式则必须依靠Pattern类与Matcher类,这两个类都在Java.util.regex包中定义。Pattern类主要作用是进行正则规范的编写,Matcher类中药执行规范,验证一个字符串是否符合其规范。下面通过几个小程序来理解正则。
  一、 检查是否为数字?
[Java]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
11
import java.util.regex.Pattern ;
public class RegexDemo02{
     public static void main(String args[]){
         String str = "1234567890" ;        // 此字符串由数字组成
         if (Pattern.compile( "[0-9]+" ).matcher(str).matches()){    // 使用正则
             System.out.println( "是由数字组成!" ) ;
         } else {
             System.out.println( "不是由数字组成!" ) ;
         }
     }
};

打印结果:是由数字组成!
二、日期检查?
[Java]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
import java.util.regex.Pattern ;
import java.util.regex.Matcher ;
public class RegexDemo03{
     public static void main(String args[]){
         String str = "1983-07-27" ;        // 指定好一个日期格式的字符串
         String pat = "\\d{4}-\\d{2}-\\d{2}" ;    // 指定好正则表达式
         Pattern p = Pattern.compile(pat) ;    // 实例化Pattern类
         Matcher m = p.matcher(str) ;    // 实例化Matcher类
         if (m.matches()){        // 进行验证的匹配,使用正则
             System.out.println( "日期格式合法!" ) ;
         } else {
             System.out.println( "日期格式不合法!" ) ;
         }
     }
};

打印结果:日期格式合法
三、拆分字符串
[Java]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
import java.util.regex.Pattern ;
import java.util.regex.Matcher ;
public class RegexDemo04{
     public static void main(String args[]){
         // 要求将里面的字符取出,也就是说按照数字拆分
         String str = "A1B22C333D4444E55555F" ;    // 指定好一个字符串
         String pat = "\\d+" ;    // 指定好正则表达式
         Pattern p = Pattern.compile(pat) ;    // 实例化Pattern类
         String s[] = p.split(str) ;    // 执行拆分操作
         for ( int x= 0 ;x
             System.out.print(s[x] + "\t" ) ;
         }
     }
};
四、替换字符串
[Java]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
import java.util.regex.Pattern ;
import java.util.regex.Matcher ;
public class RegexDemo05{
     public static void main(String args[]){
         // 要求将里面的字符取出,也就是说按照数字拆分
         String str = "A1B22C333D4444E55555F" ;    // 指定好一个字符串
         String pat = "\\d+" ;    // 指定好正则表达式
         Pattern p = Pattern.compile(pat) ;    // 实例化Pattern类
         Matcher m = p.matcher(str) ;    // 实例化Matcher类的对象
         String newString = m.replaceAll( "_" ) ;
         System.out.println(newString) ;
     }
};

你可能感兴趣的:(java基础篇---正则表达式)