正则表达式

一.正则表达式简介

  • 正则表达式描述了一种字符串匹配的模式,也称规则表达式
  • 常用于检索,替换符合指定模式(规则)的文本
  • 大多数语言都支持正则表达式

二.正则表达式语法

  • 正则表达式是由普通字符和特殊字符组成的字符串
  • 普通字符:原义字符和非打印字符
  • 非打印字符如下:
字符说明
\r匹配一个回车符
\n匹配一个换行符
\t匹配一个制表符
\f匹配一个换页符
  • 特殊字符:
  • 元字符: * + ? $ ^ . | \ () {} []
字符说明字符说明
$匹配输入字符串的结尾位置^匹配输入字符串的起始位置
()标记子表达式的开始和结束\转义符
*匹配前面表达式任意次?匹配前面表达式0次或多次
+匹配前面表达式一次或多次{n}匹配前面表达式n次
.匹配除换行符\n之外的任何单字符{n,m}最少匹配n次,最多匹配m次
[xyz]xyz表示字符集合,匹配中括号所包含的任意字符x|y匹配表达式x或y
[^xyz]表示匹配非xyz集合中的字符[a-z]匹配a-z范围的字符
  • 预定义字符,如下:
字符说明
\d匹配数字,等价于[0-9]
\D匹配非数字,等价于[^\d]
\w匹配任意字母数字,等价于[a-zA-Z0-9_]
\W匹配非字母数字,等价于[^\w]
\s匹配空白字符,等价于[\t\r\n\f\v],注意的是其中包含空格
\S匹配非空白字符,等价于[^\s]

三.java的正则表达式

  • 位于java.util.regex包
  • Pattern类:表示一个正则表达式(匹配模式)
  • Matcher类:Pattern对象matcher()方法的返回值,表示正则表达式对输入字符串的匹配结果
  • 演示如下代码:
package regex;

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

/**
 * @author sunyong
 * @date 2020/05/19
 * @description
 * 测试正则表达式
 */
public class TestRegex {
    public static void main(String[] args) {
        Pattern p = Pattern.compile("h(?<result1>.?)(\\w*)(.*)");//匹配模式
        Matcher m = p.matcher("hhfl_j??");//匹配的对象
        System.out.println("是否匹配成功?"+m.matches());//匹配成功?
         //匹配之后才能处理
        if(m.matches()){
            //匹配的结果
            // 命名分组 参数为整数代表第几个括号的内容 0为整体内容(和无参一样)
            // 命名分组 参数用?<变量名>表示 直接调用该变量名
            System.out.println("无参:"+m.group());
            System.out.println("参数为0:"+m.group(0));
            System.out.println("参数为变量名(等价于数字1):"+m.group("result1"));
            System.out.println("参数为1:"+m.group(1));
            System.out.println("参数为2:"+m.group(2));
            System.out.println("参数为3:"+m.group(3));

        }
    }
}
  • 运行结果如下:
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值