---
url: https://sugarat.top/bigWeb/regexp.md
---

# 正则表达式

记录业务开发中所遇到的一些问题及解法

## 常用关键字

|     符号     |            作用             |   用法示例    |           解释           |
| :----------: | :-------------------------: | :-----------: | :----------------------: |
|      |      |          或者(OR)           |   /yes|no/   |      匹配yes或者no       |
|      i       |       忽略字母大小写        |     /h/i      |        匹配h或者H        |
|      g       |       查询整个字符串        |    /ab/gi     | 匹配所有的ab不区分大小写 |
|      .       |        匹配任意字符         |     /.un/     |    匹配run,gun,fun等     |
|      \[]      |   匹配中括号中的一个字符    |   /a\[sdf]b/   |     匹配asb,adb,afb      |
|      -       |      \[]中限定一个范围       |    /\[a-z]/    |     匹配任意小写字母     |
|     \[^]      |      不匹配指定的内容       |  /\[^0-9]ab/   |  不包括数字母开头的*ab   |
|      +       |        匹配1个或多个        |     /a+/      |      匹配a,aa,aaa等      |
|      \*       |        匹配0个或多个        |     /ab*/     |     匹配a,ab,abbb等      |
|      ?       |        匹配0个或1个         |     /ab?/     |         匹配a,ab         |
|     .\*?     |      惰性匹配(非贪婪)       |    /<.*?>/    | 匹配\<xxx>或者\</xxx>等  |
|     .\*      |         匹配(贪婪)          |    /<.*>/     |  匹配\<xx>absada\</xx>   |
|      ^       |          匹配开头           |     /^ab/     | 匹配开头是ab的字符串:abc |
|      $       |          匹配结尾           |     /ab$/     | 匹配结尾是ab的字符串:dab |
|      \w      |     等价于\[a-zA-Z0-9\_]      |     /\w/      |   匹配数字,字母,下划线   |
|      \W      |     等价于\[^a-zA-Z0-9\_]     |     /\W/      |  匹配非数字,字母,下划线  |
|      \d      |         等价于\[0-9]         |     /\d/      |         匹配数字         |
|      \D      |        等价于\[^0-9]         |     /\D/      |        匹配非数字        |
|      \s      |     等价于\[ \r\t\f\n\v]     |     /\s/      |   匹配空格,换行,tab等    |
|      \S      |    等价于\[^ \r\t\f\n\v]     |     /\S/      |  匹配非空格,换行,tab等   |
|    {x,y}     |          限定个数           |   /a{1,2}/    |        匹配1-2个a        |
|     {x,}     |          限定个数           |    /a{1,}/    |        匹配1-n个a        |
|     {x}      |          限定个数           |    /a{1}/     |         匹配1个a         |
| (?:pattern)  | 匹配pattern但不获取匹配结果 |  /a(?:b|c)/  |       等价于ab|ac       |
| (?=pattern)  |        正向肯定预查         |  /a(?=b|c)/  |      匹配ab,ac中的a      |
| (?!pattern)  |        正向否定预查         |  /a(!=b|c)/  |       匹配ad中的a        |
| (?<=pattern) |        正向肯定预查         | /(?<=a|b>)c/ |      匹配ac,bc中的c      |
| (?)c/ |      匹配cc,dc中的c      |

**综合示例1**

* 用户名由数字和字母组成
* 不能以数字开头,但可以以数字结尾
* 字母可以大写也可以小写
* 用户名必须至少两个字符长,两个字符的用户名只能使用字母作为字符

```js
/^[a-zA-Z]([a-zA-Z]+|\d{2,})\d*$/
```

## 目录

* [提取样式表中url()中的内容](./p1.md)
