正则表达式

导读:本篇文章讲解 正则表达式,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!