Java基本正则表达式

本文主要介绍java正则表达式的基本用法,常用的匹配。

Java 正则表达式

正则表达式定义了字符串的模式。
正则表达式可以用来搜索、编辑或处理文本。
正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。

下面为案列及代码。

注意:
matches方法中,() 中双引号中的内容为正则表达式

匹配单个字符

String str1 = "a";
//只匹配字符a
System.out.println(str1.matches("a"));//TRUE

//匹配0-9,a-z,A-Z 的单个字符
System.out.println(str1.matches("[a-z0-9A-Z]"));//TRUE

//^在[]里面代表非 , 匹配不是0-9,a-z,A-Z 的单个字符
System.out.println(str1.matches("[^a-z0-9A-Z]"));//false

匹配多个字符

String str2 = "java";
//直接匹配相同的字符串
System.out.println(str2.matches("java"));//true
//一个字符一个字符的匹配
System.out.println(str2.matches("[a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z]"));//true
//{}代表几次
System.out.println(str2.matches("[a-z0-9A-Z]{4}"));//true
//+代表一次或者多次
System.out.println(str2.matches("[a-z0-9A-Z]+"));//true
System.out.println("".matches("[a-z0-9A-Z]+"));//false
//*表示0次或者多次
System.out.println(str2.matches("[a-z0-9A-Z]*"));//true
System.out.println("".matches("[a-z0-9A-Z]*"));//true

匹配0次或者一次

String str3 = "abc";
//匹配3-4个字符
System.out.println(str3.matches("[a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z]?"));//true
System.out.println("abcde".matches("[a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z]?"));//false

匹配数字或者非数字

注意:
此时使用 \ \ 是因为 \ 为转义

String str4 = "123";
String str5 = "abc";
//匹配数字  /d
System.out.println(str4.matches("\\d+"));//true
System.out.println(str5.matches("\\d+"));//false
//匹配非数字
System.out.println(str4.matches("\\D+"));//false
System.out.println(str5.matches("\\D+"));//true

匹配任何字符类字符0-9 a-z A-Z

String str6 = "123";
String str7 = "abc";
String str8 = "%^&";
//\w 匹配 0-9 a-z A-Z
System.out.println(str6.matches("\\w+"));//TRUE
System.out.println(str7.matches("\\w+"));//TRUE
System.out.println(str8.matches("\\w+"));//FALSE
//\W 匹配非 0-9 a-z A-Z
System.out.println(str6.matches("\\W+"));//FALSE
System.out.println(str7.matches("\\W+"));//FALSE
System.out.println(str8.matches("\\W+"));//TRUE

或者

String sex1 = "男";
String sex2 = "女";
String sex3 = "男女";
//|前后代表或者的关系 , 一般匹配多个字符时 带()即可
System.out.println(sex1.matches("[男]|[女]"));//true
System.out.println(sex2.matches("[男]|[女]"));//true
System.out.println(sex3.matches("[男]|[女]"));//true

匹配中文字符

String str9 = "我爱中国";
String str10 = "ilovechina";
//匹配中文 \u4e00-\u9fa5 为unicode 编码范围
System.out.println(str9.matches("[\u4e00-\u9fa5]+"));//true
System.out.println(str10.matches("[\u4e00-\u9fa5]+"));//false
//匹配非中文字符
System.out.println(str9.matches("[^\u4e00-\u9fa5]+"));//false
System.out.println(str10.matches("[^\u4e00-\u9fa5]+"));//true

匹配空白字符

String str11 = "abc";
String str12 = " 	";//空格 和 制表符
// \s 匹配空白字符
System.out.println(str11.matches("[\\s]+"));//false
System.out.println(str12.matches("[\\s]+"));//true
// \S 匹配非空白字符
System.out.println(str11.matches("[\\S]+"));//true
System.out.println(str12.matches("[\\S]+"));//false

任意字符

· 除了\n外的其他字符
可以使用 \w\W 或者 \D\d 等其他类似的方式来匹配任意字符

注意:

代码中出现" \ \ ",均为’’,因为java中\的作用是用来做转义字符使用的

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vivien_o.O

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值