正则表达式笔记
JDK1.4之后正则默认被JDK所支持,并且提供java.util.regex开发包,同时String类也支持直接正则处理
1.常用正则标记
(1)字符:匹配单个字符。
a:表示匹配字母a;
\\:转义字符'"\";
\t:转义字符"\t";
\n:转义字符"\n";
(2)一组字符:任意匹配里面的单个字符
[abc]:可能是字母a、b或c;
[^abc]:不是字母a、b或c中的任意一个;
[a-zA-Z]:全部字母中的任意一个;
[0-9]:全部数字中的任意一个;
(3)边界匹配:(JavaScript里面可能会用到)
^:一组正则的开始;
$:一组正则的结束;
(4)简写表达式:每一位出现的简写标记也只表示一位
.:任意一位字符;
\d:任意一位数字,等价于.[0-9];
\D:非数字的任意字符,等价于.[^0-9];
\w:任意一位字母、数字、_,等价于.[a-zA-Z0-9];
\W:非字母、数字、_以外的任意字符,等价于.[^a-zA-Z0-9];
\s:任意的一位空格,例如"\n"、"\t"、" ";
\s:空格以外的任意字符;
(5)数量表示:匹配多位字符
?:出现0次或1次;
*:出现0次、1次或多次;
+:出现1次或多次;
{n}:出啊先n次;
{n,}:出现n次及以上;
{n,m}:出现n~m次;
(6)逻辑表示:与、或、非
表达式A表达式B:表达式A后面紧跟着表达式B;
表达式A|表达式B:表达式A或表达式B;
(表达式):将多个表达式合成一个表示,作为一组出现;
2.String类对正则的支持
public boolean matches(String regex) //匹配指定正则表达式
public String replaceAll(String regex, String replacement) //替换指定正则的全部内容
public String replaceFirst(String regex, String replacement) //替换指定正则的首个内容
public String[] split(String regex) //按照指定正则全拆分
public String[] split(String regex, int limit) //按照指定的正则拆分为指定个数
3.java.util.regex包支持
该包中有两个核心的正则操作类:Pattern(正则模式)和Matcher(匹配)
(1)Pattern类:进行正则表达式的编译以及获取Matcher实例
public static Pattern compile(String regex) //编译正则表达式,取得Pattern实例
Pattern pat = Pattern.compile();
public Matcher matcher(CharSequence input) //获取Matcher实例
Pattern pat = Pattern.compile();
Matcher mat = pat.matcher(str);
public String[] split(CharSequence input) //字符串拆分
(2)Matcher类:
public bool matches() //执行验证
public String replaceAll(String replacement) //字符串替换
public boolean find() //是否有下一个匹配
public String group(int group) //获取指定组编号的数据
这里group和find方法是String类所实现不了的。