Java中的正则表达式(regex)

A : 正则表达式

  • 是指一个用来描述或者匹配一系列符合某个语法规则的字符串.就是一种描述规则
    B : 案例演示
  • 需求 : 校验QQ号码
    1: 要求必须是5-15位数字
    2: 0不能开头
    3: 必须都是数字
String regex = "[1-9]\\d{4,14}"
// String 中有一个方法 用来检测正则的
 "1741474467".matches(regex); 
// [1-9] 代表1~9
// \d 表示任意数字

[] 代表单个字符

  • [abc] a b 或 c (简单类)
  • [^abc] 任何字符,除了a.b或c(否定)
  • [a-zA-Z]a到z或A到Z,两头的字母包括在内(范围)
  • [a-d[m-p]] a 到 d 或 m 到 p ; a-dm-p
  • [a-z&&[def]] d e 或 f (交集)
  • [a-z&&[^bc]] a 到 z 除了b和c ;等价于[ad-z]
  • [a-z&&[^m-p]] a到z,而非m到p;等价于[a-lq-z]

常见对象(预定义字符类演示)

  • . 任意一个字符
  • \d 数字 : [0-9]
  • \D 非数字 :[^0-9]
  • \s 空白字符[\t\n]
  • \S 非空白字符[^\s]
  • \w 单词字符 : [a-zA-Z0-9_]
  • \W 非单词字符 : [^\w]

常见对象(数量词)

  • X? X,一次或一次也没有
  • X* X,零次或多次
  • X+ X,一次或多次
  • X[n] X,恰好n次
  • X[n,] X,至少n次
  • X[n,m] X,至少n次,但不超过m次

Split() 根据正则表达式切割字符串

replaceAll(String regex,String replacement) 前面是正则表达式 , 后面是匹配上之后要替换的字符串

Sring regex = "1[3578]\\d{9}" // 手机号码的正则表达式
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
while(m.find())
{
Ststem.out.println(m.group());
}

你可能感兴趣的:(Java中的正则表达式(regex))