天天看点

java语言基础(60)——java正则表达式基础使用

正则表达式各种语言通用,但不同的语言又有细微的区别。所以我们在用正则表达式的时候,一定要仔细了解当前语言中正则的规则。java中 java.util.regex包中的Pattern类说明了java语言中正则的细节。

正则表达式的应用:

判断  matches

分割  split

替换  replaceAll

获取  Pattern 与 Matcher合用

package patternDemo;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

class PatternDemo
{
  public static void main(String[] args){
    // 匹配判断 matches
     String reg = "^1[34578]{1}\\d{9}$";
     String phone = "13112341234";
     System.out.println(phone.matches(reg));// true

     // 分割 split
     String abc = "a,b,c";
     String[] abcArr = abc.split(",");
     for(int i = 0;i<abcArr.length;i++){
        System.out.println(abcArr[i]); //输出 a b c
     }

     // 替换 replaceAll
     String s = "hello123world456";
     String regex = "\\d+";
     String replacement = " ";
     String result = s.replaceAll(regex,replacement);
     System.out.println(result); // hello world

       // Pattern 和 Matcher
     // 使用方法
     // 1 通过Pattern对象获取matcher对象
     // 2 用matcher对象的获取功能 find()  start() end() group()
     String findInStr = "hello #world# hello #java# hello #php#";
     // 找出所有的 ## 包围的字符
     String pattern = "#(\\w+)#";

     Pattern p = Pattern.compile(pattern);
     Matcher m = p.matcher(findInStr);
      
     while(m.find()){
        System.out.print(m.group() +"  "+ m.group(1));
        System.out.println();
     }
     // 匹配结果
     /* #world#  world
       #java#  java
       #php#  php  */

    
  }
}