package com.cn.regExp;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestRegExp {
public static void p(Object o) {
System.out.println(o);
}
public static void main(String[] args) {
//初步认识 .* + ?
//.表示一位字符,* 表示零个或多个,+ 表示一个或多个,? 表示一个或零个
// p("a".matches("."));//true,匹配一个字符任何字符
// p("a".matches("a"));//true,匹配一个
//
// p("".matches("a*"));//true,匹配零个
// p("aaaaaaaaaaaaaaa".matches("a*"));//true,匹配多个
//
// p("a".matches("a+"));//true,匹配一个
// p("aaaaaaaaaaaaaaaaaaaa".matches("a+"));//true,匹配多个
//
// p("a".matches("a?"));//true,匹配一个
// p("aaaaa".matches("a?"));//false,匹配多个
// p("".matches("a?"));//true,匹配零个
//
//
// //X{n} X,恰好 n 次
// p("aa".matches("a{2}"));//true,恰好2次a
// //X{n,} X,至少 n 次
// p("aaaaaaaaaa".matches("a{5,}"));//至少5次,最多无限
// //X{n,m} X,至少 n 次,但是不超过 m 次
// p("123333333337628383".matches("\\d{5,100}"));// \\d表示数字 ,匹配数字至少3位最多不超过100位
//
//
// p("aaa.168.0.15".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));//false,验证数字至少1位,最多3位,之间用.分开
// p("192.168.0.15".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));//true
// p("192".matches("[0-2][0-9][0-9]"));//true []表示范围,[0-2]表示在0到2范围内一个数字,[0-9]表示在0到9范围内一个数字
// []表示范围,一个中括号匹配一个字符
// p("a".matches("[abc]"));// true ,匹配中括号内有一个a
// p("a".matches("[^abc]"));//false,匹配除了abc以外的任意字符
// p("a".matches("[a-zA-Z]"));//true,匹配小写的a-z或者大写的A-Z范围内一个字符
// p("a".matches("[a-z | A-Z]"));//true 匹配小写的a-z或者大写的A-Z范围内一个字符
// p("a".matches("[a-z[A-Z]]"));//true 匹配小写的a-z或者大写的A-Z范围内一个字符
// p("R".matches("[A-Z && [RGB]]"));//true 必须在A-Z范围内并且是RGB范围中的一个
//认识 \w 单词字符:[a-zA-Z_0-9] \W 非单词字符:[^\w]
//\d 数字:[0-9] \D 非数字: [^0-9]
//\s 空白字符:[ \t\n\x0B\f\r] \S 非空白字符:[^\s]
p(" \n\r\t\f".matches("\\s{5}"));//true,匹配5个空白字符
p(" ".matches("\\s"));//true,匹配一个空白字符
p(" ".matches("\\S"));//false,匹配一个非空白字符
p("a_9".matches("\\w{3}"));//true,匹配3位字符组成的单词
p("$_%".matches("\\w{3}"));//false
p("abc866666%&^#".matches("[a-z]{1,3}\\d+[&%^#]+"));//true,a-z 出现1次到3次,数字出现一次或多次,&%^# 出现一次或多次
p("\\abc".matches("\\\\[a-z A-Z]{1,3}"));//true,正则表达式匹配一个反斜线必须用\\
}
}