正则表达式

正则表达式

概述:正则表达式事是对字符串操作的以重逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”来表达对字符串的一种过滤逻辑。

规则字符:

String regx = "";
regx = "a";  // 代表此字符
regx = "\\"; // 代表反斜线字符
regx = "\n"; // 换行符
regx = "\r"; // 回车符
regx = "[a,b,c]"; // a,b或c
regx = "[^a,b,c]"; // 任何字符。除了a,b,c
regx = "[a-zA-Z]"; // a到 z 或 A到 Z,两头的字母包括在内
regx = "[0-9]"; // 0到9的字符都包括 
regx = "."; //  任何字符  
regx = "\."; //   .  字符本身
regx = "\d"; // 数字:[0-9]  \D 非数字: [^0 - 9]
regx = "\w"; // 单词字符:[a-zA-Z_0-9],在正则表达式里面组成单词的东西必须有这些东西组成   \W 非单词字符:[^\w]
regx = "\s"; // 匹配空格字符
regx = "|"; // | 或者
regx = "abc$"; // 以abc结尾
regx = "^abc"; // 以abc开头
regx = "[0-9]+"; //0-9 + 可以出现一个或多个
regx = "[a-z]*"; //0-9 * 0个或多个 1个也算多个  空串算0个
regx = "[A-Z]?"; // ? 一个或 0个
regx = "\\w+";
regx = "[a-zA-Z0-9_]+";
regx = "[a-z]{6}"; //正好几个
regx = "[a-zA-Z]{6,}"; //至少6个
regx = "[a-zA-Z]{6,16}"; //大于等于6 小于等于16

正则表达式功能:

判断功能:

public boolean matches(String regex) // 判断字符串是否符合正则表达式

分割功能:

public String[] split(String regex) // 将字符串按正则表达式分割成几段字符串,返回String类的数组

替换功能:

public String replaceAll(String regex,String replacement) // 用输入的字符串替换符合正则表达式的字符串

Pattern和Matcher的概述:

指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher

对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。

典型调用顺序:

Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aab");
boolean b = m.matches();

获取功能:

​ 使用的是 find()方法 和 group()方法 注意一定要先使用find()方法先找到 才能用group()方法获取出来。例:

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

public class MyTest4 {
    public static void main(String[] args) {
      /* 获取下面这个字符串中由三个字符组成的单词 正则表达式 \\b[a-z]{3}\\b
        da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?*/
        String str = "da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?";

        Pattern pattern = Pattern.compile("\\b[a-z]{3}\\b");
        Matcher matcher = pattern.matcher(str);

        while (matcher.find()) {
            String s = matcher.group();
            System.out.println(s);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值