正则表达式
今天看了一下正则表达式,简单的写一下,关于正则表达式的几个用法。
package Demo1;
/*
+代表匹配其前面一个或者多个字符
?代表匹配前面的字符0次或一次
* 代表匹配前面的字符0次或者多次
{n}代表匹配确定的几次 e{n}就代表匹配字符串中有n个e
{n,}代表匹配n次以上,
{n,m}代表匹配n到m次,
\w 代表匹配单词字符[a-zA-Z0-9]
\W 代表匹配非单词字符,[^a-zA-Z0-9]
\d 代表匹配0-9这样的数字[0-9]
\D 非数字[^0-9]
\s 空白字符[\t \n \xOB\f \r]
\S 非空白字符[^\s]
\ 转义字符
*/
public class Zhengze {
public static void main(String[] args) {
/*
用于验证
*/
String str = "1234567abcccd";
String regex = "\\w{13,}";//"\"转义字符,匹配"\w",{13,},相当于匹配至少13个{a-zA-Z0-9}这样的字符
String regex1 ="\\d+[a-d]{6}";//\\d+意思就是匹配0-9这样的数字至少一次[a-d]{6}匹配a-d之间的6个字符
System.out.println(str.matches(regex));//true
System.out.println(str.matches(regex1));//true
System.out.println("=================================");
/*
用于替换
*/
String str1 = "12Y34h56dAd78";
String regex2 = "[a-zA-Z]+";
System.out.println(str1.replaceAll(regex2,"-"));//12-34-56-78
System.out.println(str1.replaceAll(regex2,"#"));// 12#34#56#78
System.out.println("===================================");
/*
用于分割
*/
String str2 = "avg bb geig glsd abc";
String reg = " +";//加号前面有一个空格
String[] arr = str2.split(reg);//字符串以一个或多个空格分割,存放到字符串数组里面
for(String string :arr ){
System.out.println(string);
}
}
}
true
true
=================================
12-34-56-78
12#34#56#78
===================================
avg
bb
geig
glsd
abc