正则表达式
一门独立的语言,有自己的语法,用于检测指定的字符串是否符合特定规则
示例 | 作用 |
---|---|
a | 只能是a |
a{x} | 只能是a,并且有x位,即x个a |
a{x,} | 只能是a,至少有x位 |
a{x,y} | 只能是a,并且有x位到y位 |
a* | 只能是a,并且有0或多位 |
a+ | 只能是a,并且至少有1位 |
a? | 只能是a,并且有0或1位 |
[a-g] | 只能是a到g的符号 |
[a-g]{x} | 只能是a到g的符号,并且有x位 |
[a-zA-z]{x} | 只能是字母,忽略大小写,并且有x位 |
[a-zA-z]{x} | 只能是字母、数字,并且有x位 |
. | 任意一个字符 |
\d | \代表正则转义符,\d代表数字 ( [0-9] = [\d] ) |
\D | 非数字(大写是非) |
\w | 数字、字母、下划线 |
\s | 空格 |
\n | 回车 |
\t | 制表符 |
用法
Java中String支持正则表达式的方法:
- matches :判断字符串是否匹配某个规则 ,返回一个布尔值。例如
"aabb".matches("(a|b)*")
表示字符串"aabb"是否符合规则 (a|b) * ,符合返回的就是true
- replaceAll:作用和replace一样,区别在于支持正则表达式。例如
"he12o".replaceALL("\\d", "l")
表示将字符串"he12o"中的所有数组替换成"l",其中的"\d",第一个斜杆是java的转移字符,第二个斜杆是正则表达式的转义字符
- replaceFirst:作用和replaceAll一样,区别在于只替换第一个
- split : 使用正则表达式将字符串分割为数组 。例如
"hello world_welcome-to$beijing".split("\\s|_|-|\\$")
如果按照普通的方法拆分就要重复多次使用不同的分隔符,但是直接用正则表达式就可以同时将多个符号作为分隔符