正则表达式(regular expression)用来匹配和处理文本的规则字符串。
它主要有两个功能:匹配和替换文本。
Js正则表达式在线测试:
https://www.luoluolzb.cn/product/tool/js-regular-expression
| 符号 | 功能 |
|---|---|
| \ | 对元字符进行转义,使之匹配原字符 |
| . | 匹配任意一个字符 |
| [] | 定义字符集,匹配结果可以是方括号中的任意字符。如[a-z]、[A-Z]、[0-9]。使用^可以对字符集取反如[^a-z]匹配非小写字母的其他字符 |
| 符号 | 功能 |
|---|---|
| * | 前一个字符(集)重复>=0次 |
| + | 前一个字符(集)重复>=1次 |
| ? | 前一个字符(集)重复0次或1次 |
| {n} | 前一个字符(集)重复n次 |
| {s,n} | 前一个字符(集)重复s~n(包含s和n)次 |
| {s,} | 前一个字符(集)重复>=s次 |
贪婪型字符:*、+、{n,} 会尽可能的匹配多的字符
它们懒惰型版本(后面加个?):*?、+?、{n,}? 可以让他们碰到第一个匹配时停止
| 符号 | 功能 |
|---|---|
| \b | 匹配单词的开始或结尾 |
| \B | 不匹配单词的开始或结尾 |
| ^ | 匹配整个字符串开头,多行模式下匹配行首 |
| $ | 匹配整个字符串结尾,多行模式下匹配行尾 |
| (?m) | 放在模式的最前面,将每行当做一个字符串来处理。用来配合^和$使用 |
| 符号 | 功能 |
|---|---|
| () | 用来包含子模式,构成一个整体 |
| a|b | 匹配a或b,a和b可以是子模式,可以多个连用 |
| 符号 | 功能 |
|---|---|
| \n | 引用模式中的第n个子模式 |
| ?=pattern | 正向前匹配:必须匹配pattern但不在结果中返回 |
| ?!pattern | 负向前匹配:不匹配pattern的内容但不在结果中返回 |
| ?<=pattern | 正向后查找:必须匹配pattern但不在结果中返回 |
| ?<!pattern | 负向后查找:必须匹配pattern但不在结果中返回 |
注意:js不支持前后查找和负向后查找
| 符号 | 功能 |
|---|---|
| (?(condition)yes-pattern|no-pattern) | condition匹配到则执行yes-pattern, 否则执行no-pattern, no-pattern可以不写。 |
注意:js正则不支持嵌入条件
| 符号 | 功能 |
|---|---|
| \f | 换行页 |
| \n | 换行符 |
| \r | 回车符 |
| \t | 制表符 |
| \v | 垂直制表符 |
| \d | 数字字符,[0-9] |
| \D | 非数字字符,相当于[^0-9] |
| \w | 字母和数字字符或下划线,相当于[a-zA-Z0-9_] |
| \W | 非字母和数字字符或下划线,相当于[^a-zA-Z0-9_] |
| \s | 空白字符,相当于[\f\n\r\t\v] |
| \S | 非空白字符,相当于[^\f\n\r\t\v] |
| \xxx | 八进制字符 |
| \xdd | 十六直接字符 |
| \uxxxx | 十六进制Unicode字符 |
IP地址:
(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))
组成:四个0-255的数字组成用三个.隔开
URL地址:
https?://[-\w.]+(:\d+)?(/([\w/_.]*)?)?
组成:协议名、主机名、端口号、文件路径
邮箱地址:
(\w+\.)*\w+@(\w+\.)+[A-Za-z]+
HTML注释:
<!-{2,}.*?-{2,}>
本文标签: 正则表达式
暂无评论,赶紧发表一下你的看法吧。