用途
- 字符串匹配(字符匹配)
- 字符串查找
- 字符串替换
例如:
- IP地址是否正确
- 从网页中揪出email地址
- 从网页中揪出链接等
类
- java.lang.String
- java.util.regex.Pattern
- java.util.regex.Matcher
初识正则表达式
import java.util.regex.*;
public class TestReg {
public static void main(String[] args) {
p("abc".matches("..."));//true
p("a8729a".replaceAll("\\d","-"));//a----a
Pattern p = Pattern.compile("[a-z]{3}");
Matcher m = p.matcher("fgh");
p(m.matches());//true
}
public static void p(Object o) {
System.out.println(o);
}
}
matches
import java.util.regex.*;
public class TestReg {
public static void main(String[] args) {
p("a".matches("."));//.代表任意一个字符
p("aaa".matches("a*"));//*代表a0个或多个
p("a".matches("a+"));//+代表a一个或多个
p("a".matches("a?"));//?代表a一个或一个也没有
p("12496218225".matches("\\d{11}"));//恰好11个数字
p("12496218225".matches("\\d{9,}"));//至少12个数字
p("12496218225".matches("\\d{3,11}"));//至少3个数字,不超过11个数字
p("192.168.0.0".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
p("192".matches("[0-2][0-9][0-9]"));//第一位数字范围是0-2,第二位是...第三位是...
}
public static void p(Object o) {
System.out.println(o);
}
}
范围
import java.util.regex.*;
public class TestReg {
public static void main(String[] args) {
p("a".matches("[abc]"));//abc中的一个true
p("a".matches("[^abc]"));//不包含abc中的任意一个false
p("a".matches("[a-zA-Z]"));//范围true
p("a".matches("[a-z]|[A-Z]"));//或者true
p("a".matches("[a-z[A-Z]]"));//效果同上面一样,或者true
p("a".matches("a-z&&[RPG]"));//交集false
}
public static void p(Object o) {
System.out.println(o);
}
}