正则表达式简单语法
# 普通字符
- [0-9] 匹配单个数字;
- [a-z] 匹配单个字母;
- [ABC] 匹配 [...] 中的所有字符;
- \w 匹配字母、数字、下划线,等价于 [A-Za-z0-9_];
- \W 匹配非字母、数字、下划线;
- \b 匹配一个单词边界,即字与空格间的位置,单词首或尾开始匹配;
- \B 非单词边界匹配,单词中间开始匹配;
- \d 匹配一个数字字符,等价于 [0-9];
- \D 匹配一个非数字字符,等价于 [^0-9];
# 非打印字符
- \cx 匹配由x指明的控制字符。例如,\cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符;
- \f 匹配一个换页符;
- \n 匹配一个换行符;
- \r 匹配一个回车符;
- \s 匹配任何空白字符,包括空格、制表符、换页符等等;
- \S 匹配任何非空白字符,等价于 [^ \f\n\r\t\v];
- \t 匹配一个制表符;
- \v 匹配一个垂直制表符;
# 特殊字符
- 要匹配以下字符时需要 '' 进行转义;
- * 匹配前面的子表达式零次或多次;
- + 匹配前面的子表达式一次或多次;
- ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符;
- . 匹配除换行符 \n 之外的任何单字符;
- ^ 匹配输入字符串的开始位置,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合;
- $ 匹配输入字符串的结束位置;
- () 标记一个子表达式的开始和结束位置;
- [ 标记一个中括号表达式的开始;
- { 标记限定符表达式的开始;
- | 指明两项之间的一个选择;
- 通过在 *、+ 或 ? 限定符之后放置 ?,该表达式从"贪婪"表达式转换为"非贪婪"表达式或者最小匹配;
# 限定符
- {n} n 是一个非负整数,匹配确定的 n 次;
- {n,} n 是一个非负整数,至少匹配 n 次;
- {n,m} m 和 n 均为非负整数,其中n <= m,最少匹配 n 次且最多匹配 m 次;
# 选择符
- exp1(?=exp2):正向肯定预查,查找 exp2 前面的 exp1;
- exp1(?!exp2):正向否定预查,查找后面不是 exp2 的 exp1;
- (?<=exp2)exp1:反向肯定预查,查找 exp2 后面的 exp1;
- (?<!exp2)exp1:反向否定预查,查找前面不是 exp2 的 exp1;
- 非获取匹配,不存储供以后使用;
# 修饰符
- i:将匹配设置为不区分大小写;
- g:全局匹配,查找所有的匹配项。
- m:多行匹配,边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾;
编辑 (opens new window)
上次更新: 2024/09/18, 15:48:56