----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
正则表达式也是个字符串,不过是个比较特殊的字符串
String的方法boolean matches(String regex);判断该字符串是否满足正则表达式
StringreplaceAll(String regex,String replacement);使用给定的replacement字符串替换匹配给定正则的每个字符串
System.out.println("abc".matches("...")); true 一个"."代表一个字(母)符(三个汉字也可)
System.out.println("a8729a".replaceAll("\\d","_")); a____a 所有数字替换为横线 "\\d"代表一位数字
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
public classTest {
public static void main(String[] args) {
Pattern p=Pattern.compile("[a-z]{3}");
将给定正则表达式编译到模式中,[a-z]表示在a-z范围内的单个字符,{3}表示3个字符
Matcher m=p.matcher("fgh");
利用给定字符串创造匹配器
System.out.println(m.matches()); true
}
}
简写:System.out.println("fgh".matches("[a-z]{3}"));
分开写效率高,因为首先编译了,另外,Pattern和Matcher提供了很多其他重要的功能
MyEclipse群体注释:选中需要注释部分,ctrl+shift+"/" 取消注释:ctrl+shift+"\"
"a".matches(".") true
"aa".matches("aa") true 完全匹配
"aaaa".matches("a*") true *代表0或多个 ?代表0或一个
"aaaa".matches("a+") true +代表1或多个
"21452314".matches("\\d{3,100}") true \\d数字 >=3个 <=100个
"21452314".matches("\\d{3}") true \\d数字 且正好3个
"21452314".matches("\\d{3,}") true \\d数字 >=3个
"192.168.0.545".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}") true \\.代表一个"."
"192".matches("[0-2][0-9][0-9]") [ ]表示范围,表示第一个数在0-2的范围内
"".matches("a?"); true a?表示a出现0次或1次,而空串表示a出现0次,故匹配
"".matches("a*"); true 同理
"a".matches("[abc]") true 一个[ ]代表匹配一个字符,判断是不是abc中的一个
"a".matches("[^abc]") false 非abc中的一个
"A".matches("[a-zA-Z]") true 一个字符,且在a-z或A-Z之间
等同于"A".matches("[a-z]|[A-Z]") 等同于"A".matches("[a-z]|[A-Z]")
"abc888^%".matches("[a-z]{1,3}\\d+[&^#%]+") [a-z]{1,3} a-z的数字出现1到3次 \\d数字出现一次或多次
[&^#%]+ &,^,#,%四者之一出现一次或多次
"\\".matches("\\\\")
\\w一个构成单词的字符
"hellosir".matches("^h".*) ^:一行的开头
"hellosir".matches(".*ir$") $:一行的结尾 即:以ir结尾前面有0或多个字符
"hellosir".matches("^h[a-z]{1,3}0\\b.*") \\b:单词边界(空格空白字符等)