Java正则表达式及其使用方法

正则表达式

基本概述

  • 由事先定义好的特殊字符以及这些特殊字符组成,组成一个“规则的表达式”,这是表达式用来
    对字符串进行过滤逻辑。

语法格式

  • Java中正则表达式的语法格式:""
  • JS中正则语法格式:/ /

运用场景

  • 1.检测用户输入的合法性
  • 2.检索、替换文本

正则表达的组成

## 这是比较常用的,更多在API文档了解

由普通字符和特殊字符(元字符)组成。

字符
    x       字符 x  。  举例:'a'  表达式字符a
    \\      反斜杠字符
    \n      换行
    \r      回车符
    
字符类
    [abc]       表示abc中任意单个字符
    [^abc]      表示除了abc任意单个字符
    [a-zA-Z]    表示a到z A到Z中任意单个字符
    [0-9]       表示0-9任意单个字符
    
预定义字符类
    .           除了换行符以外的任意单个字符。    我的就是.字符本身,怎么表示呢? \.
    \d          数字[0-9]
    \D          非数字: [^0-9] 
    \w          数字字母下划线[a-zA-Z_0-9]
    \W          非单词字符:[^\w] 
    \s          空白字符 
    \S          非空白字符:[^\s] 
    
边界匹配器
    ^           开头
    $           结尾
    \b          单词边界
    
数量词
    X?          表示X可以出现一次或一次也没有 
    X*          零次或多次 
    X+          一次或多次 
    X{n}        恰好 n 次 
    X{n,}       至少 n 次 
    X{n,m}      至少 n 次,但是不超过 m 次 
    
特殊符号
    ()          子字符集
    |           或
    &&          与
    \           转义字符
    ?           设置括号内的选项是可选的

使用方法

boolean matches()  尝试将整个区域与模式进行匹配。 

Pattern pattern()  返回该匹配器解释的模式。

static boolean matches(String regex, CharSequence input)  编译给定的正则表达式,并尝试匹配给定的输入。 

static Pattern compile(String regex)  将给定的正则表达式编译为模式。 

static Pattern compile(String regex, int flags)  将给定的正则表达式编译为带有给定标志的模式。 
//1.编写正则表达式,匹配abc中任意单个字符
  String reg = "[abc]$";
  
  //2.编写正则表达式匹配abc中任意3个字符
  String reg1 = "[abc]{3}";
  
  //3.编写正则表达式匹配字母数字,要求出现0或则1次
  String reg2 = "[a-zA-Z0-9]?";
  
  //4.编写正则表达式匹配字母数字下划线
  String reg3 = "\\w";
  
  System.out.println("--------第一种匹配方式---------");
  boolean mc = "adc".matches(reg1);
  System.out.println(mc);
  
  boolean mc1 = "acc".matches(reg1);
  System.out.println(mc1);
  
  System.out.println("--------第二种匹配方式----------");
  boolean b = Pattern.matches(reg2, "9");
  System.out.println(b);
  
  System.out.println("--------第三种匹配方式----------");
  //compile(String regex)   将给定的正则表达式编译到模式中。
  // 将给定的正则表达式编译到模式中。
  Pattern pattern = Pattern.compile(reg3);
  
  //Matcher matcher(CharSequence input)   创建匹配给定输入与此模式的匹配器。 
  //创建匹配给定输入与此模式的匹配器
  Matcher matcher = pattern.matcher("6");
  
  //尝试将整个区域与模式匹配
  boolean matches = matcher.matches();
  System.out.println(matches);
//1.验证用户名 字母开头4-6为数字字母下划线
  String reg = "^[a-zA-Z]\\w{3,5}";

//4.验证邮箱
  String reg2 = "^[1-9a-zA-Z]+@\\w+(.com|.cn|.com.cn)$";

//6.验证用户2-4位汉字
  String reg3 = "[\u4e00-\u9fa5]{2,4}";

//7.验证用户名 数字字母 必须都包含
  // ?![0-9]$  ?![a-zA-Z]$
  String reg4 = "(?![0-9]+$)(?![a-zA-Z]+$)[0-9a-zA-Z]*";

//必须包含 数字 字母  下划线
  String reg5 = "(?![0-9]+$)(?![a-zA-Z]+$)(?![0-9a-zA-Z]+$)[0-9a-zA-Z_]*";

//定义字符串
  String str = "q xue wan gaoji wo gei ni men jie shao dui xiang,ni men ji bu ji dong?"
//匹配三个字符组成的单词
  String reg = "\\b[a-zA-Z]{3}\\b";

常用方法

int end()  返回最后一个字符匹配后的偏移量。 

boolean find()  尝试找到匹配模式的输入序列的下一个子序列。 

String group()  返回与上一个匹配匹配的输入子序列。 

String replaceAll(String replacement)   将与模式匹配的输入序列的每个子序列替换为给定的替换字符串。 

int start()  返回上一个匹配的起始索引。 

String[] split(CharSequence input, int limit)  将给定的输入序列分成这个模式的匹配。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值