正则表达式(Pattern和Matcher类)

正则表达式:

概念:正确规则的表达式 规则java给我们定的,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。

正则表达式的组成规则

规则字符在java.util.regex Pattern类中
A:字符
x 字符 x。举例:‘a’表示字符a
\ 反斜线字符。
\n 新行(换行)符 (’\u000A’)
\r 回车符 (’\u000D’)
B:字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
[0-9] 0到9的字符都包括
C:预定义字符类
. 任何字符。我的就是.字符本身,怎么表示呢? .
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
在正则表达式里面组成单词的东西必须有这些东西组成
D:边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
就是不是单词字符的地方。
举例:hello world?haha;xixi
E:Greedy 数量词
X? X,一次或一次也没有 比如""空串 就是没有
X* X,零次或多次 大于等于1次 都算多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次

正则表达式的功能

A:正则表达式的判断功能
	String类的功能:public boolean matches(String regex)
B:正则表达式的分割功能 split()方法
	String类的功能:public String[] split(String regex)
C:把给定字符串中的数字排序

举例分析:
有一个字符串:”91 27 46 38 50”,编写代码实现最终输出结果是:”27 38 46 50 91”

  •      a: 定义目标字符串"91 27 46 38 50"
    
  •  	b: 对这个字符串进行切割,得到的就是一个字符串数组
    
  •  	c: 把b中的字符串数组转换成int类型的数组
    
  •  		(1): 定义一个int类型的数组,数组的长度就是字符串数组长度
    
  •  		(2): 遍历字符串数组,获取每一个元素.将其转换成int类型的数据
    
  •  		(3): 把int类型的数据添加到int类型的数组的指定位置
    
  •  	d: 排序
    
  •  	e: 创建一个StringBuilder对象,用来记录拼接的结果
    
  •  	f: 遍历int类型的数组, 将其每一个元素添加到StringBuilder对象中
    
  •  	g: 就是把StringBuilder转换成String
    
  •  	h: 输出
    
D:正则表达式的替换功能
	String类的功能:public String replaceAll(String regex,String replacement)
E:正则表达式的获取功能
	Pattern和Matcher的结合使用,使用的是 find()方法  和 group()方法  注意一定要先使用find()方法先找到 才能用group()方法获取出来

举例:
获取下面这个字符串中由三个字符组成的单词
正则表达式 \\b[a-z]{3}\\b da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu
代码:

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

public class Demo6 {
    public static void main(String[] args) {
        //需求:获取下面这个字符串中由三个字符组成的单词
        //da jia ting wo shuo, jin tian yao xia yu, bu shang wan zi xi, gao xing bu?
        //[a-z]{3}
        String s="da jia ting wo shuo, jin tian yao xia yu, bu shang wan zi xi, gao xing bu?";
        Pattern p = Pattern.compile("\\b[a-z]{3}\\b");
        Matcher  m= p.matcher(s);
        while(m.find()){
            String group = m.group();
            System.out.println(group);
        }

    }
}

Pattern和Matcher

(正则的获取功能需要使用的类)
Pattern->模式器
Matcher->匹配器
使用方法,举例如下

	Pattern p = Pattern.compile("a*b");
	Matcher m = p.matcher("aaaaab");
	boolean b = m.matches();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值