正则标记
单个字符
-
\\
:表示转义字符“\”;
-
\t
:表示一个“\t”符号;
-
\n
:匹配换行“\n”符号;
字符集
[abc]
:表示可能是字符a或者是字符b或者是字符c中的任意一个;
[^abc]
:表示不是a、b、c中的任意一位;
[a-z]
:表示任一的小写字母;
[a-zA-Z]
:表示任意一位字母,不区分大小写;
[0-9]
:表示任意的一位数字;
简化的字符集表达式
.
:表示任意的一位字符;
\d
:等价于[0-9]
;
\D
:等价于[^0-9]
;
\s
:表示任意的空白字符,如:\t
,\n
;
\S
:表示任意的非空白字符;
\w
:等价于[a-zA-Z_0-9]
,表示由任意的字母,数字,_,所组成;
\W
:等价于[^a-zA-Z_0-9]
,表示不是有任意的字母,数字,_所组成;
边界匹配(通常用于Javascript)
数量表达
?
:表示此正则可以出现0次或者1次;
+
:表示此正则可以出现1次或者1次以上;
*
:表示此正则可以出现0次/1次或多次;
{n}
:表示此正则正好出现n次;
{n,}
:表示次正则出现n次以上(包含n次);
{n,m}
:表示此正则出现n~m次;
逻辑运算
- 正则1正则2:正则1判断后继续判断正则2;
- 正则1|正则2:正则1或正则2满足一个就可以;
- (正则):将正则视为一组,同时可以先设置出现次数;
代码示例
public class test1 {
public static void main(String[] args) {
String str = "asdA)(S)(ASDsda)(&&*^%*%sdas1231532";
String regex = "[^a-z]";
System.out.println(str.replaceAll(regex,""));
}
}
public class test1 {
public static void main(String[] args) {
String str = "jhgvfkjhg1341jhgv4jlhv1234vjhv1j234vlkgv13";
String regex = "\\d+";
String result[] = str.split(regex);
for(String a:result){
System.out.println(a);
}
}
}
public class test1 {
public static void main(String[] args) {
String str = "10.22";
String regex = "\\d+(\\.\\d*)?";
System.out.println(str.matches(regex));
}
}
public class test1 {
public static void main(String[] args) {
String str = "192.168.5.1";
String regex = "(\\d{1,3}\\.){3}\\d{1,3}";
System.out.println(str.matches(regex));
}
}
public class test1 {
public static void main(String[] args) throws Exception {
String str = "2009-03-12";
String regex = "\\d{4}-\\d{2}-\\d{2}";
System.out.println(str.matches(regex));
if(str.matches(reges)){
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(str);
System.out.println(date);
}
}
}
public class test1 {
public static void main(String[] args) throws Exception {
String str = "12345678";
String regex = "\\d{7,8}|\\d{3,4}-\\d{7,8}|\\(\\d{3,4}\\)-\\d{7,8}";
System.out.println(str.matches(regex));
}
}
public class test1 {
public static void main(String[] args) throws Exception {
String str = "fanrencli@163.com";
String regex = "[a-zA-Z]\\w{0,28}[a-zA-Z0-9]@\\w+\\.(net|cn|com\\.cn|com)";
System.out.println(str.matches(regex));
}
}