正则符号
正则符号
基本符号
- ^ 行的起始位置
- $ 行的结束位置
- […] 列出的任意字符
- gr[ea]y:匹配 grey 和 gray
- A[1-4]:匹配 A1、A2、A3 和 A4,其中“-”为元字符
- [^…] 未列出的任意字符
- a[^12]b:匹配 a1b 和 a2b 外所有 a[]b 类型字符
- . 单个任意字符
- 点号在字符组内不再是元字符
-
** ** 匹配分隔两边的任意一个表达式 - ? 可选项
- + 之前的紧邻的元素出现一次或多次
- ** * ** 之前的紧邻的元素出现任意次或不出现
- **** 转义字符
- {min, max} 至少需要 min 次,至多容许 max 次
修饰符
- i 忽略大小写
- /ab/i 匹配 Ab、AB 和 aB
- g 全局模式
- x 宽松排列和注释模式
- s 点号通配模式
- m 增强的行锚点模式
特殊符号
- \t 制表符
- \v 垂直制表符
- \n 换行符
- \r 回车符
- \f 进纸符
- \b 单词起止符
- \s 空白字符
- \S 非空白字符
- \w [a-zA-Z0-9]
- \W 除\w 之外的任何字符
- \d [0-9],即数字
- \D 除\d 外的任何字符,即[^0-9]
- \u 八进制
- \1、\2等 捕获引用
括号()的用途
- (…) 限制多选项范围,将多干字符组合成一个单元 a,并可以被捕获,配合\1,\2 等来引用
- (?:…) 仅用于分组,表示不捕获
- (?=…) 肯定顺序环视,子表达式能够匹配右侧文本
- (?!…) 否定顺序环视,子表达式不能匹配右侧文本
- (?<=…) 肯定逆序环视,子表达式能够匹配左侧文本
- (?<!…) 否定逆序环视,子表达式不能匹配左侧文本
- (?i:…) 限制模式范围
- **(? #:…)\*\*
- (?…) 命名捕获,js 不支持
- (?>…) 固化分组,js 不支持
-
**(?if then else)** 条件判断
This post is licensed under
CC BY 4.0
by the author.