Java正则表达式

Posted 夜白Night

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java正则表达式相关的知识,希望对你有一定的参考价值。

一、概念

正则表达式是一种文本处理工具,通常用来检索、替换某个符合规则或者模式的文本。

二、字符串中的使用

1.通过String的matches()方法可以验证一个字符串是否匹配某个正则表达式(返回值,boolean),常用于检查某个字符串是否符合特定规则。

2.split()方法可以将字符串从正则表达式匹配的位置截取为字符串数组。

3.replaceFirst()和replaceAll()分别替换正则表达式第一个匹配的字串或者替换整个字串String中所有匹配正则表达式的内容。

 三、语法

1.元字符

 

 

元字符

Java正则写法

意义

.

.

匹配除”\\r\\n”之外的任何单个字符

\\d

\\\\d

匹配任意数字,等价于[0-9]

\\D

\\\\D

匹配非数字字符,等价于[^0-9]

\\s

\\\\s

匹配空格字符,等价于[\\f\\n\\r\\t\\v]

\\S

\\\\S

匹配非空格字符

\\w

\\\\w

匹配单词类字符,等价于[A-Za-z0-9_]

\\W

\\\\W

匹配非单词类字符

^

^

匹配字符串开始位置

$

$

匹配字符串结束位置

2.组合元字符

字符组

意义

[abc]

匹配a、b、c中的任何一个字符

[^abc]

匹配除a、b、c以外的任何字符

[a-zA-Z]

匹配任意一个英文字母

[a-d]

匹配a至d的任意一个字母

[a-d[x-z]]

并(或)运算,匹配a、b、c、d或x、y、z中任意一个

[a-z&&[x-z]]

交(与)运算,匹配x、y、z

[a-f&&[^bc]]

差运算,匹配a、d、e、f

3.量词

量词格式

意义

X?

表达式X出现0次或1次,等价于{0,1}

X*

表达式X出现0次或多次,等价于{0,}

X+

表达式X出现1次或多次,等价于{1,}

X{n}

表达式X正好出现n次

X{n,}

表达式X至少出现n次

X{n,m}

表达式X出现n次至m次

四、常用类及其方法

1.Pattern和Matcher类

  Pattern类的对象用于完成正则表达式的编译处理,使用静态方法: Pattern.compile(正则表达式)完成将正则表达式处理为模板的过程。

  Matcher类的对象用于根据pattern正则表达式模板对输入字符串进行解释和匹配,

  Matcher matcher = p.matcher(“输入字符串”)。

 

2.常用方法操作

  matcher.find() 方法 尝试匹配搜索输入字符串中符合模板的下一个子串,

  matcher.group() 方法 获取匹配到的组,

  通常用法:用 (.*?) 或者 (.+?) 来表示要取的部分内容,表达式 a(.*?)b 用group(0)获取完整表达式,用group(1)查找.*?的内容,

3.贪婪 和非贪婪匹配:

  贪婪匹配:匹配到最后才结束;

  非贪婪匹配:匹配到一个就结束。

  

 

以上是关于Java正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

java 正则表达式

java编程基础 正则表达式

java匹配url的正则表达式

java正则表达式怎么书写?

java 正则表达式 ^java 是啥意思

JAVA正则表达式代码