正则表达式学习笔记

可视化正则表达式网站:regexper.com


1. 单字符

任何可见字符,如:字母a ~ z,数字1 ~ 9,汉字'爱'


2. 特殊字符

特殊字符 正则表达式 记忆方式
换行符 \n newline
换页符 \f form feed
回车符 \r return
空白符 \s space
制表符 \t tab
垂直制表符 \v vertical tab
回退符 [\b] backspace 与\b(分界符) 区分

3. 元字符 / 符号

正则表达式 匹配区间 记忆方式
\d 单个数字,[0-9] digit
\D 除了[0-9] not digit
\w 包括下划线'_'在内的单个字符,含[A-Za-z0-9] word
\W 非单字字符 not word
\s 匹配空白字符,含空格、制表符、换页符、换行符、回车符 space
\S 匹配非空白字符 not space
. 除了换行符之外的任何字符 句号. 除了句子结束符
{min, max} 匹配字符出现的次数 如 \d{1,7}: 匹配1 ~7 数字,a{3}:字母a出现3次
[] 表示区间 如 [a-z]: 匹配a-z区间中一个元素
* 用来表示匹配0个字符或无数个字符。通常用来过滤某些可有可无的字符串 >= 0,如 a*: 匹配出现0个或多个字母a
+ 适用于要匹配同个字符出现1次或多次的情况 >= 1
? 用来匹配1个或0个字符 0/1, 如 colou?r: 匹配color 或 colour
\b
() 正则分组符号,用来包装子正则表达式 如 (\d{1,3})@(\w)(.com)
\ 1 ('\ + 数字'形式) 指代分组1匹配的结果 如 ([^_]\w{1,5})(\1)#(dev): 分组2位置使用分组1匹配的结果作为正则匹配模式

3. 位置边界

  • 单词分界符:\b
    如果要匹配单词cat,而非单词category,则需要用到单词边界符:\b
    示例:/\bcat\b/

  • 字符串边界符 :^(字符串开始) $(字符串结尾)
    示例:/^I am a dever.$/

  • 其他的:
    \B: 非单词边界 (not boundary)
    m: 多行匹配模式 (multiple of lines)/ok regular expression/m
    i: 忽略大小写 (ignore case)/\w{2,6}@qq.com/i
    g: 全局匹配模式 (global)示例:/\d{1,3}#\s/g
    (?=regex): 前向查找 示例: /ap(?=ple)/ 查找apple,而非plement
    (?!regex): 非前向查找
    (?<=regex): 后向查找 示例: /(?<=ple)ment/ 查找ple但不匹配apple里的
    (?:regex): 非捕获组


4. 逻辑处理

逻辑关系 正则元字符
默认regex间连接是与关系
竖线/
[^regex] 和 !

你可能感兴趣的:(正则表达式学习笔记)