作用:字符串匹配、字符串查找、字符串替换;
类:java.lang.String、java.util,regex.Pattern、java.util.regex.Matcher;
● 简单认识:
p("abc".matches("..."));//true
p("a232333a".replaceAll("//d", "-"));//将数字替换成“-”
Pattern p = Pattern.compile("[a-z]{3}");
Matcher m = p.matcher("fgh");
p(m.matches());
p("fgh".matches("[a-z]{3}"));//等价于上面三句。区别在于上面三句已经编
//译好了,因此执行起来会更快。
public static void p(Object obj) {
System.out.println(obj);
}
打印结果:
true
a------a
true
true
● 进一步认识:
p("a".matches("."));
p("aa".matches("aa"));
p("aaaa".matches("a*"));
p("".matches("a*")); //X* X, zero or more times
p("aaaa".matches("a+")); //X+ X, one or more times
p("".matches("a+"));
p("aaaa".matches("a?")); // X? X, once or not at all
p("".matches("a?"));
p("a".matches("a?"));
p("214523123123456".matches("//d{3,100}")); p("192.168.0.aaa".matches("//d{1,3}//.//d{1,3}//.//d{1,3}//.// d{1,3}")); //false
p("192".matches("[0-2][0-9][0-9]"));//true
/*Greedy quantifiers
X{n} X, exactly n times
X{n,} X, at least n times
X{n,m} X, at least n but not more than m times */
● 范围:(只匹配一个字符)
p("a".matches("[abc]"));
p("a".matches("[^abc]"));
p("A".matches("[a-zA-Z]"));
p("A".matches("[a-z[A-Z]]"));
p("A".matches("[a-z]|[A-Z]"));
p("R".matches("[A-Z&&[RFG]]"));
● 将一个四则表达式按照非数字作为界限分开:
public class TestExpression {
public static void main(String[] args) {
String str = "1111+22*23-3+27/3=";
//String[] sSplitNum = str.split("[^1234567890]");
//String[] sSplitNum = str.split("[^//d]");
//String[] sSplitNum = str.split("[^0-9]");
String[] sSplitNum = str.split("//D");
for(int i=0; i<sSplitNum.length; i++) {
System.out.println(sSplitNum[i]);
}
}
}
注:这里还要顺便注意下split这个函数,如果是要以一个字符分开给定的字符串,如字符串“127.0.0.1“要以“.“分开,那么就必须写成”//.”,即:
String IP = “127.0.0.1”;
String[] ipStr = IP.split(“//.”);
● 运用正则表达式匹配一个反斜杠“/“:
System.out.println("//".matches(""));
● 测试一个字符串是不是只含有数字:
p("123323421".matches("[0-9]+"));
p("2323423".matches("//d+"));
p("1212".matches("[//d]+"));
结果都为true;
JavaScript中的“正则表达式“
与Java的正则表达式规则相类似,只要在匹配的模式前后加上”/”即可。如:
判断一个变量是不是一个实数:
var str = /^/d+(./d+)?$/;
str.test(string); //string为要匹配的字符串
其中,”^” 表示行的开头;”$”表示行的结尾;是不是一个整数:/^/d+$/
故其格式为:/^(匹配的模式)$/