本文摘自PHP中文网,作者hzc,侵删。
正则表达式
Regular Expression 使用单个字符串描述、匹配一系列符合某个句法规则的字符串
.
代表任意字符
+
代表一个或多个
()
可以对其分组,$1
可以获取分组的内容
\d
代表数字
{}
中可以写个数
[]
中的元素是或的关系
^
标示开头
$
表示结尾
\b
代表单词边界
var reg = / \bis\b /g; 匹配is字符
g
代表global 全局替换,不添加的话,搜索到第一个就匹配停止了
i
ignore case忽略大小写,默认大小写敏感
m
multiple lines多行搜索 将字符串中的换行符也当做一行
元字符
原义文本字符
例如: a b c
元字符
在正则表达式中有特殊含义的非字母字符
* + ? $ ^ . | \ () {} []
字符类
[] 来构建一个简单的类,所谓的类是指符合某些特性的对象,是一个泛指而不是特指某个对象
[abc]就是有其中的任意一个即可
字符类取反
加上^符号
[^abc]匹配abc以外的字符
范围类
- [a-z]来表示从a到z的任意字符
- 这是个闭区间 也表示a和z的本身
- 如果想匹配横线,可以直接在后边加一个 [a-b-]
js预定义类
字符 | 等价类 | 含义 |
---|---|---|
. | [^\r\n] | 除了回车和换行符以外的所有字符 |
\d | [0-9] | 数字字符 |
\D | [^0-9] | 非数字字符 |
\s | [\t\n\x0B\f\r] | 空白符 |
\S | [^\t\n\x0B\f\r] | 非空白符 |
\w | [a-zA-Z_0-9] | 单词数字(字母数字下划线) |
\W | [^a-zA-Z_0-9] | 非单词数字 |
边界
字符 | 含义 |
---|---|
^ | 以xx开始 |
$ | 以xx结束 |
\b | 单词边界 |
\B | 非单词边界 |
量词
字符 | 含义 |
---|---|
? | 出现零次或者一次(最多出现一次) |
+ | 出现一次或多次(至少出现一次) |
* | 出现零次或多次(任意次) |
{n} | 出现n次 |
{n,m} | 出现n到m次 |
{n,} | 至少出现n次 |
贪婪与懒惰模式
1 2 3 |
|
正则表达式默认会最多去匹配
想使用飞贪婪模式 在量词后加上?
即可
1 2 3 |
|
分组
1 |
|
1 |
|
反向引用
1
2
>
'2017-06-29'
.replace(/(\d{4})-(\d{2})-(\d{2})/,
'$3/$2/$1'
)
.>
"29/06/2017"
将每个小括号中的内容作为一个对象,可以使用这个对象
忽略分组
如果不想捕获某个分组,在分组内加上
?:
即可
推荐教程:《JS教程》
以上就是正则表达式基础的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《正则表达式》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者