黑马程序员技术交流社区

标题: 【上海校区】java基础篇---正则表达式 [打印本页]

作者: 默默呜呜    时间: 2019-5-29 17:08
标题: 【上海校区】java基础篇---正则表达式
本帖最后由 默默呜呜 于 2019-5-29 17:17 编辑

java基础篇---正则表达式
      正则表达式在许多语言,例如Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。正则在JDK1.4之后引入到java中,最早时候的JDK,如果想要使用正则,则需要添加Apache提供的一个正则开发包。Pattern,Matcher类想要在程序中应用正则表达式则必须依靠Pattern类与Matcher类,这两个类都在Java.util.regex包中定义。Pattern类主要作用是进行正则规范的编写,Matcher类中药执行规范,验证一个字符串是否符合其规范。下面通过几个小程序来理解正则。
  一、 检查是否为数字?
[Java] 纯文本查看 复制代码
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] 纯文本查看 复制代码
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] 纯文本查看 复制代码
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] 纯文本查看 复制代码
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) ;
    }
};







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