Java基础-正则表达式

Posted

tags:

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

正则表达式入门

str.matches("\\d+");  由1到多个数字组成返回true

正则表达式是什么?是一个字符串,一个由元字符【预定义字符】和普通字符和量词组成的一个字符串。

正则表达式的作用?用来实现字符串的匹配或过滤。

正则表达式的元字符如下:

\d  数字(digit)

\D  非数字

\s  空格(space)

\S  非空格

\w  单字符:字母数字下划线中的某个符号(word)

\W  非单字符:单字符之外中的某个符号

.      一个任意字符[除\n \t \r]

^regex$   ^表示开始 $表示结束

|  或者

 

量词如下:

+  1个或多个字符

*  0个或多个字符

?  0或1个字符

{n}  正好n个字符

{n,}  至少n个字符

{n,m} 最少n个,最多m个字符

 

字符集:

使用[]将出现的字符罗列出来

[ac?_6]  表示5个字符中的某一个

[0-9]  表示0-9中的某一个,- 表示范围

所以 \w 等价于 [a-zA-Z0-9_]

 

正则的应用:

String类的与正则相关的常用方法

boolean matches(regex); 匹配:按正则的要求对字符串进行匹配

String[] split(regex);  分割:按正则的要求对字符串进行分割

分割示例:

String str="i love! you?";

String regex="[\\s!?\\d]{1,}"; //一或多个空格及叹号、问号、数字

String[] s=str.split(regex);

for(String tem:s){

  println(tem);

}

println("个数"+s.length);

 

积累:

非负整数 [0-9]+

正整数  [1-9]\\d*   OR   [1-9][0-9]*

字母开头之后接3-6个任意字符  [a-zA-Z].{3,6} 等效 [a-zA-Z]{1}.{3,6}

 

替换

String newstr = str.replaceALL(String regex,String replament); 用replament 替换 regex

积累:

或者,要么是nba 要么是cba :    nba|cba

 

手机号:[1][3578][0-9]{9}

邮箱:[email protected]+[.].+ 是错的 [a-zA-Z0-9]\\w*[@][a-zA-Z0-9]+[.][a-zA-Z]{2,3}

示例:

java.util.Pattern

Pattern.matches(regex,email); 等效于 email.matches(regex);

 

过滤

未完待续

 

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

Java正则表达式基础学习

Java正则表达式基础学习

java匹配url的正则表达式

Java面试java基础,正则表达式java怎么匹配...

Java正则表达式基础语法

Java基础学习笔记十三 常用API之正则表达式DateDateFormatCalendar