正则表达式
- 正则表达式是通过模式匹配实现对字符的查询,提取,替换,分割;从而简化操作对字符的处理
定义正则表达式
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);
String str = "abc";
String regex = "[a-z]bc$";
boolean isMatches = str.matches(regex);
- #:也可以用\b,出现在字符左边时等价^,出现在字符右边时等价$
基本语法:普通字符
[a-z] a到z的任意小写字母
[A-Z] A到Z的任意大写字母
[0-9] 0到9之间的任意字符
基本语法:转义字符
所有的转义序列都用反斜杠(\)打头
制表符:\t
换行符:\n
回车符:\r
退格符:\b
基本语法:限定字符
{0,} 表示0以上个 相当于*
{1,}表示1个以上,相当于+
{0,1},表示0到1个,相当于?
{2} 表示2个
{0,2}:表示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]。
基本语法:否定
[^]:表示否定,方括号内不允许出现某字符
基本语法:()