推荐练习正则表达式的网站 regexr
| 表达式 | 含义 | 说明 |
|---|---|---|
| . | 任一字符 | 不含换行符 |
| \. | 只匹配 . | \为转义符,让'.'变为普通的dot(点) |
| \w | word charactor | 数字、字母、下划线 |
| \W | \w的补集 | 除数字、字母、下划线之外 |
| \d | 数字 | 等于[0-9] |
| \D | 除数字外 | 包括空格 |
| \s | 空白 | 空格、制表符、换行符 |
| \S | \s的补集 | |
| [] | 集合 | 任一存在与集合中的字符 |
| [abc] | a或b或c | |
| + | 一次或多次 | 等于{1,} |
| * | 零次或多次 | 等于{0,} |
| ? | 零次或一次 | 等于{0,1} |
| \b | word boundary | 单词前后的边界 |
| {1,4} | 1到4次 | 指定重复范围 |
| {2} | 2次 | |
| {2,} | 至少两次 |
分组匹配:(模式)
例子:
expression: /.+(h\w{3,}).+(h\w{3,})/g 匹配以h开头长度大于4的单词
text: romeo is handsome, and he is hardworking.
replace: romeo is $2, and he is $1.
result: romeo is hardworking, and he is handsome. 分组匹配但不捕获(?:模式)
第一个()为$1,第二个()为$2,但若将第一个使用(?:)后,则第一个无法用$捕获,第二个( )变为$1。
正向预查(?=模式)
(?=模式)正向肯定预查
(?!模式)正向否定预查
反向预查(JavaScript不支持)
比正向预查多个小于号,要放在待匹配模式的前面。例如:(?<=$)\d

京公网安备 11010502036488号