Contents
  1. 1. 基本语法
  2. 2. 括号含义
  3. 3. 基本字符
  4. 4. 字符的开始、结束
  5. 5. 字母的开始或者结束 \b
  6. 6. 匹配数字 \d
  7. 7. 空格\s
  8. 8. 匹配字母或数字或下划线\w
    1. 8.0.1. 限定符
  9. 8.1. 正则表达式用在程序中

基本语法


括号含义

  • {}一般用来表示匹配的长度
  • []匹配的字符范围
  • ()提取匹配的字符串

基本字符

(一个元字符替代一个字符 例如 \w 可以表示 2或者s或者’_’)

  • ‘.’ 表示匹配除了换行符之外的任何字符

  • ‘*’ 表示匹配除了换行符之外任意数量的字符

    例子:Erintrus后面有PROG

    \bErintrus\b.*\bProg\b
    

    如果要匹配 ‘.’ 和’*’的话,就必须加转义字符

    例子:匹配erintrus.github.io 和c:/erintrus

    erintrus\.github\.comc://erintrus
    

字符的开始、结束

  • ‘^’表示匹配字符串的开始(在字母前,若放在非字母前面表示非)

  • ‘$’表示匹配字符串的结束

    例子:输入5-12位QQ号码

    ^\d{5,12}$
    

字母的开始或者结束 \b

  • \b表示英文单词的开始或者结束 (\b标签囊括的是一个单词)

    例子: 限制输入只能为Erintrus

    \bErintrus\b
    

匹配数字 \d

  • \d表示匹配0-9的任意字符(即数字)

    例子:区号的电话 如 010-2254789

    A. \d\d\d-\d\d\d\d\d\d\d\d
    B. \d{2}-\d{8} {n}表示前面连续重复匹配N
  • \d+ 跟\d* 的区别

    前者匹配1-n个数字,后者匹配0-n个数字
    

空格\s

  • \s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格

匹配字母或数字或下划线\w

  • \w匹配字母或数字或下划线(可以理解为表示字母)

    例子:匹配以a开头的单词

    \ba\w*\b (因为\b里面必须是单词,所以这里\w不会表示下划线或者数字)
    

限定符

(用于限定某个字符重复次数)

例如上面的的 \d+ 表示匹配1-n个数字

即\d+ 可以表示成 2 或者 2356

正则表达式用在程序中

  • 涉及相关类包括Pattern、Matcher
      public static String stringFilter(String str) throws PatternSyntaxException {
    // 只允许字母和数字
    String regEx = "[^a-zA-Z0-9_]";
    Pattern p = Pattern.compile(regEx);
    Matcher m = p.matcher(str);
    return m.replaceAll("").trim();
}

Contents
  1. 1. 基本语法
  2. 2. 括号含义
  3. 3. 基本字符
  4. 4. 字符的开始、结束
  5. 5. 字母的开始或者结束 \b
  6. 6. 匹配数字 \d
  7. 7. 空格\s
  8. 8. 匹配字母或数字或下划线\w
    1. 8.0.1. 限定符
  9. 8.1. 正则表达式用在程序中