JAVA中的正则表达式:
1.JAVA中正则表达式所在的类为:java.util.regex这个包下
--包含下面两个类:
Matcher
Pattern
--JAVA中String这个类下面有一个matches方法,matches(String regex);
这个方法的参数是一个正则表达式,也是一个字符字符串
如 "abc".matches("..."); 其中的三个点,每个点代表一个字符
2.JAVA API ,一个典型的模式匹配
A typical invocation sequence is thus
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
3.正则表达式具体一些含义
* Pattern.compile("[a-z]{3}");表示什么意思?
[a-z]{3}表示匹配三个字符,且这三个字符都必须是a-z之间的一个字符串模式
* 认识 * + ? . 在正则表达式中所代表的含义
a* ------ 表示a这个字符出现0次或多次
a+ ------ 表示a这个字符出现1一次或多次
a? ------ 表示a这个字符出现0次或者1次
* JAVA中正则表达式中.的表示方式是//. 比如你要打印出/l
那么你的打印语句必须这样写System.out.println("//l");
* ^表示一行的开头,如下面这个的值就是true
System.out.println("hello sir".matches("^h.*"));
* $表示一行的结尾
System.out.println("hello sir".matches(".*r$"));
的结果也是true
4.正则表达式范围怎么表示:
[]一对中括号表示匹配一个字符,如[abc]表示匹配一个在abc这个字符之中的一个字符
[^abc]表示匹配出abc字符以外的任何一个字符
[a-zA-Z]表示匹配一个在a-z或者A-Z之间的一个字符
[a-z]|[A-Z]和上面的[a-zA-Z]的含义相似
[A-Z&&[RFG]]表示匹配一个在A-Z之间且必须RFG三者中之一的一个字符
* 一些特殊的范围:
/b 表示单词的边界, 如空格 换行 回车都是一个单词的边界
System.out.println("hello fengjianghong".matches("^h[a-z]{3}o//b.*"));
这个的结果就是true
/d ---> [0-9]
/D ---> [^0-9]
/w 表示一个字符,也就是 ---> [a-zA-Z_0-9]
/W 正好和/w相反 也就是 [^/w]
/s 代表空白字符 想程序中的/n /t /f /r都表示空白字符
/s ---> [/t/n/f/r]
所以System.out.println(" /t/n/f/r".matches("//s{5}"));的结果
肯定是true
/S 正好和/s相反 [^/s]
5.一般的邮件正则表达式匹配格式:
"len.fashion@gmail.com".matches("[//w[.-]]+@[//w[.-]]+//.[//w]+")