正则表达式(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,}>
本文标签: 正则表达式
暂无评论,赶紧发表一下你的看法吧。