java基础之正则表达式的构建
根据jdk8的官方文档
-
.表示除了换行符以外的任何一个字符
-
[0-9]相当于\d表示一位数字 \D表示非数字
-
[a-zA-Z]表示a-z以及A-Z的任何一个英文字母
-
\w 相当于[a-zA-Z_0-9] \W 就是不是这些字符之一
-
\w+加号的意思表示一个及一个以上,所以这里就表示一个\w或者一个以上的\w
-
\w* *表示0或多个\w
-
指定范围\w{n,m} n到m(包括n和m)
-
XY表示X紧跟着Y
-
X|Y 表示X|Y
examples:
1.匹配所有java文件
.+\.java(任何字符+.java后缀)
[a-zA-Z_]\w*\.java(字母和下划线打头,再加上0或多个字符以及.java后缀)
2.匹配中文
[\u4e00-\u9fa5]只是常用汉字
3.匹配ip地址(建议还是通过字符串分割来做split("\."))
Pattern temp=Pattern.compile("^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$");
String ip="192.168.1.1";
System.out.println(temp.matcher(ip).matches());;