小白学Java11:正则表达式

正则表达式

  • 正则表达式是通过模式匹配实现对字符的查询,提取,替换,分割;从而简化操作对字符的处理

定义正则表达式

String regex = "(正则表达式内容)"

使用正则表达式

判断是否符合给定的正则表达式
boolean isMatches = str.matches(regex);

利用正则表达式对字符串进行拆分
String[] str = str.split(regex);
Arrays.toString(str);

利用正则表达式屏蔽关键字
String input = "我草泥马,fuck";
String regex = "草|操|曹|糙|fuck";
String replaceAll = input.replaceAll(regex, "*");
System.out.println(replaceAll);

基本语法:定位符

  • ^:表示以什么什么开始
  • [^] :表示不以括号内的字符开头
String str = "abc";
String regex = "^ab[a-z]";
boolean isMatches = str.matches(regex); //true
  • $:表示以什么什么结束
String str = "abc";
String regex = "[a-z]bc$";
boolean isMatches = str.matches(regex);
  • #:也可以用\b,出现在字符左边时等价^,出现在字符右边时等价$

基本语法:普通字符

[a-z]   a到z的任意小写字母
[A-Z]	A到Z的任意大写字母
[0-9]  09之间的任意字符

基本语法:转义字符

所有的转义序列都用反斜杠(\)打头
制表符:\t
换行符:\n
回车符:\r
退格符:\b

基本语法:限定字符

{0,} 表示0以上个  相当于*
{1,}表示1个以上,相当于+
{01},表示01个,相当于?
{2} 表示2{02}:表示0-2个
例如:
String str = "abcdfadf";
		String regex = "^a[a-z]{0,}";
		boolean isMatches = str.matches(regex);
 
  Ø例:
1"ab*":表示在字符串中有一个a后面跟着零个或若干个b。如:"a","ab","abbb"2"ab+":表示在字符串中有一个a后面跟着至少一个b或者更多
3"ab?":表示在字符串中有一个a后面跟着零个或者一个b
4"a?b+$":表示在字符串的末尾有零个或一个a跟着一个或几个b
5"^[0-9]+$":表示所有的正数
6"^\-?[0-9]+$":表示所有的整数
7、 “^\-?[0-9]*\.?[0-9]*$”:表示所有的数字(整数,小数) 

基本语法:或

  • 特殊字符:“|”,表示“或”操作
:1"hi|hello":表示一个字符串里有"hi"或者"hello"2"(b|cd)ef":表示"bef""cdef"3"(a|b)*c":表示一串"a""b"混合的字符串后面跟一个"c"

基本语法:通配符

  • 特殊字符:“.”,匹配除换行符 \n之外的任何单字符,要匹配.请使用.
:1"a.[0-9]":表示一个字符串有一个"a"后面跟着一个任意字符和一个数字
•2"^.{3}$":表示有任意三个字符的字符串(长度为3个字符)

基本语法:方括号

  • 方括号“[]”,表示某些字符允许在一个字符串中的某一特定位置出现:
:
1"[ab]":表示一个字符串有一个"a""b"(相当于"a|b"2"[a-d]":表示一个字符串包含小写的'a''d'中的一个(相当于"a|b|c|d"或者"[abcd]"3"^[a-zA-Z]":表示一个以字母开头的字符串
4"[0-9]%":表示一个百分号前有一位的数字
5",[a-zA-Z0-9]$":表示一个字符串以一个逗号后面跟着一个字母或数字结束
6[a-z]:匹配所有的小写字母中的一个
7[A-Z]:匹配所有的大写字母中的一个
8[\f\r\t\n]:匹配所有的空白字符
9[0-9]:匹配所有的数字中的一个

基本语法:简写

:
•\w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。 
•\W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
•\d 匹配一个数字字符。等价于 [0-9]。 
\D 匹配一个非数字字符。等价于 [^0-9]

基本语法:否定

[^]:表示否定,方括号内不允许出现某字符

基本语法:()

  • 表示括号内的作为整体匹配
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值