正则表达式

来源:互联网 发布:电子产品设计软件 编辑:程序博客网 时间:2024/06/03 13:33

正则表达式:字符串的处理利器
对字符串的处理无非是字符串的匹配,查找和替换。
在日常的ip地址 ,网址输入怎么判断输入的是否正确呢?
首先得拿到这个输入的字符串然后分析它。
如果是ip地址 ,首先你得把这个ip地址分成四个部分,然后每个部分转化成数字在和255比较。
这样比较麻烦,但用正则表达式就比较简单。
主要用到3各类:java.lang.String,java.util.regex.pattern,java.util.regex.matcher.
String类有一个matches()用来匹配字符串格式例如:System.out.println(“abc”.matches(“…”));三个点代表三个字符,返回结果是true表明匹配。
有一个replaceAll方法用来替换字符串中的字符。例如将字符串中的数字全部替换成“-”。代码:”a879666j”.replaceAll(“\d”, “-“)
接下来讲pattern和matcher这两个类,先上代码:
Pattern p = Pattern.compile(“[a-z]{4}”);
Matcher m = p.matcher(“fdss”);
P(m.matches());
pattern就相当于一个匹配模式,pattern匹配某个字符串得到的匹配结果放在matcher这个对象里面。
还有另一种实现上述效果的方法:P(“fdss”.matches(“[a-z]{4}”));直接用String的matches方法进行匹配,虽然第一种方法代码多,但
是由于是先编译好的匹配模式所以在后续使用时,效率会高一些。
String的matches方法使用以及初步认识.,*,+,?:
P(“aaaa”.matches(“a*”));//a出现0次或多次
P(“aaaa”.matches(“a+”));//一次或多次
P(“aaa”.matches(“a?”));//一次或0次
P(“4444”.matches(“\d{4,90}”));
P(“192.168.1.12”.matches(“\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}”));
P(“192”.matches(“[0-2][0-9][0-9]”));
中括号是范围,大括号是个数
一些其他的用法:P(“a”.matches(“[abc]”));
P(“d”.matches(“[^abc]”));
P(“A”.matches(“[a-zA-Z]”));
P(“A”.matches(“[a-z]|[A-Z]”));
P(“A”.matches(“[a-z[A-Z]]”));
P(“A”.matches(“[A-Z&&[AVC]]”));
认识\d,\w,\s,.
\d[0-9]\D[^0-9]
边界的处理:

\s空格符[ \n\r\t]\n换行转义符,\r是enter,\t是tab
\S[^\s]
\w[a-zA-Z_0-9]
\W[^\w]
P(“\”.matches(“\\”));在matches()方法里面的是正则表达式两个\表示一个\

0 0