Regex(正则表达式)
1.概念
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等,使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
2.正则表达式符号
这里只列举部分
/*
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
X|Y X 或 Y
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字: [0-9]
\D 非数字: [^0-9]
\s 空白字符: [ \t\n\x0B\f\r]
\S 非空白字符: [^\s]
\w 单词字符: [a-z A-Z_0-9]
\W 非单词字符: [^\w]
*/
3.正则表达式的应用
3.1
String s1 = new String("12345");
//target:被替换的字符串 replacement:替换为
String s2 = s1.replace("34","ABC");
System.out.println(s2);
//regex:正则表达式
String s3 = s2.replaceAll("\\d","X");//将数字全部替换为X
System.out.println(s3);
运行结果:
12ABC5
XXABCX
3.2
String str1 = new String("17612345678");
String str2 ="1";
//boolean res = str1.matches("\\d");// 数字
//boolean res = str1.matches("[0-9]");// 0~9都符合
//boolean res = str1.matches("\\d{5}");// {n} 恰好n个
//boolean res = str1.matches("\\d{5,}");// {n,} 至少n个
//boolean res = str1.matches("\\d{5,10}");// { n , m } n~m个
//boolean res = str1.matches("\\d?");// 1个or0个
//boolean res = str1.matches("\\d+");// 1个or多个
//boolean res = str1.matches("\\d*");// 0个or多个
boolean res = str1.matches("1[35789]\\d{9}");
//手机号: 第一位为1 第二位35789中任意一位 剩余位:9位
boolean res1 = str2.matches("[1-9]\\d{5,11}");
//QQ号: 第一位不为0,其余位任意,且为6~12位
System.out.println("手机号格式:"+res);
System.out.println("QQ号格式:"+res1);
运行结果:
手机号格式:true
QQ号格式:false
3.3
//boolean res = "7".matches("[^2-5]");//非n~m为true
//boolean res = "i".matches("\\D?");//非数字(0~9)为true
//boolean res = "hello".matches("\\w{5}");//单词字符为true
//boolean res = "*&".matches("\\W+");//非单词字符为true
//boolean res = " ".matches("\\s*");//空白字符为true
//boolean res = "12345".matches("\\S{3,5}");//非空白字符为true
boolean res = "12345abcde@163.com.cn".matches("\\w{6,10}@\\w{2,5}\\.(com|com\\.cn)");
boolean res1 = "2811992803@qq.com".matches("\\w{6,12}@qq\\.com");
System.out.println("其他邮箱格式:"+res);
System.out.println("QQ邮箱格式"+res1);
运行结果:
其他邮箱格式:true
QQ邮箱格式:true
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15649.html