正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
元字符(metacharacter):
.
: 除开换行符和结束符之外的单个字符\d
:数字\w
:字母、数字、下划线\s
:空格\b
:单词边界,不匹配这些单词分隔字符中的任何一个,它只匹配一个位置\t
:制表符\n
:换行符\D
:非数字\W
:非字母、数字、下划线\S
:非空格\B
:非单词边界
+
?
*
{n}
{n,}
{n,m}
^
$
- []
i
: ignore,忽略大小写m
: 多行匹配,只在g
: 全局查找
由于正则字符可能和实际需要匹配的文本存在符号冲突,所以在正则表达式当中,需要转义。
/(\d+)/
var reg = new RegExp('\\w\\d+','ig');
##分支条件
/0|1/
- search
- match
- replace
- split
- exec
- test
- 贪婪:匹配最大长度
- 非贪婪:匹配最短长度
abcdeabcdeabcde /abc.*de/
- 捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。
- 非捕获
- 捕获顺序
- 嵌套
RegExp.$n
replace
- 正则当中,
后
为前
,前瞻,即往后看
(?=abcd) 前方有
(?!abcd) 前方没有
- js正则中不支持
后
瞻
- 手机号
- 数字,科学计数法
- QQ号
- 英文
- 邮箱验证
- IP地址
- 日期匹配
- 匹配html标签
- 匹配文本关键字
- 数字加逗号
- 首字母大写
- url参数抓取