码迷,mamicode.com
首页 > 编程语言 > 详细

Java中的正则表达式

时间:2018-07-25 19:05:38      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:pil   直接   举例   状态   正则表达   strong   pat   布尔   需要   

一.什么是正则表达式

正则表达式就是一个用于匹配字符串的模板,可以匹配一批字符串,所以创建正则表达式就是创建一个特殊的字符串。

常用的正则表达式字符

字符

解释

\t

制表符

\n

换行符

\r

回车符

$

匹配一行的结尾,如果要匹配$字符串,使用\$可以不写

^

匹配一行的开始,如果要匹配^字符串,使用\^可以不写

()

标记子表达式的开始和结束位置,如果要匹配(或者)使用\( 或者\)  

[]

用于确定中括号表达式的开始和结束位置。[]确定范围    匹配子字符串的内容的范围

{}

用于标记前面子表达式的出现频率  子字符串的长度匹配

*

指定前面子表达式可以出现零次或多次

+

指定前面子表达式可以出现一次或者多次

指定前面子表达式可以出现零次或者一次

.

匹配除了换行符\n之外的任何单字符。

\

用于转义下一个字符。

|

指定两项之间任选一项。

 

 

字符

解释

\d

匹配0-9的所有数字

\D

匹配非数字

\s

匹配所有的空白字符,包括空格、制表符、回车符、换页符、换行符

\S

匹配所有非空白字符

\w

匹配所有的单词字符,包括0~9所有的数字、26个英文字母和下画线(_)

\W

匹配所有的非单词字符。

 

 

方扩号

解释

表示枚举

[abc],表示a、b、c其中任意一个字符;[gz]标志g、z中的任意一个字符

表示范围:-

[a-f],表示a到f之间的任意字符,范围可以和枚举结合使用,如:[a-fx-z]匹配a到f或者x到z的任意字符

表示求否:^

[^a-f],表示非a、b、c、d、e、f的任意字符 所有的字符中剔除a-f   ^剔除符号

表示与:&&

[a-z&&[d-f]],表示a到z与df的集合,d、e或者f

[a-z&&[^bc]],a-z所有的字符除了bc之外。

[a-z&&[^d-h]],a-z所有字符除去d-h之间的字符,即a-c和i-z之间的字符

表示“并”运算

[a-dm-p],即a-d所有的字符和m-p之间的所有字符

 

花括号

解释

X?

X表达式出现零次或者一次

X*

X表达式出现零次或者多次

X+

X表达式出现一次或者多次

X{n}

X表达式出现n次 a{5} aaaaa

X{n,}

X表达式出现至少n次

X{n,m}

X表达式出现n到m次

二.使用正则表达式

1.在程序中使用了正则表达式,就可以使用Java提供的Pattern和Matcher类来使用正则表达式。

Pattern对象是正则表达式编译后在内存中的表示形式,因此正则表达式字符串必须先被编译为Pattern对象,然后再利用该Pattern对象创建对应的Matcher对象。执行匹配所涉及的状态保留在Matcher对象中,多个Matcher对象可共享同一个Pattern对象。

样式:

Pattern pattern = Pattern.compile("创立的正则表达式");

Matcher m = pattern.matcher("匹配的字符串");

System.out.println(m.matches());
//返回一个布尔值

 

2.  如果某个正则表达式仅需要一次使用,则可直接使用Pattern类的静态matches方法,此方法自动把指定字符串编译成匿名的Pattern对象,并执行匹配

  举例2:

boolean flag = Pattern.matches("创立的正则表达式", "字符串"); 
System.out.println(flag);

 

Java中的正则表达式

标签:pil   直接   举例   状态   正则表达   strong   pat   布尔   需要   

原文地址:https://www.cnblogs.com/SAM-CJM/p/9367619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!