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

本文详细介绍Java中正则表达式的应用,包括检查字符串是否全为数字、验证日期格式、拆分与替换字符串等实际案例,帮助读者掌握Pattern和Matcher类的使用。
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<s.length;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) ;
     }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值