常用正则表达式
中文字符 双字节字符 空白行 Email地址 网址URL 手机(国内) 电话号码(国内) 负浮点数 匹配整数 正浮点数 腾讯QQ号 邮政编码 IP 身份证号 格式日期 正整数 负整数 用户名
在编写处理字符串的程序或网页时,经常有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
代码/语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
n | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
代码/语法 | 说明 |
---|---|
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^aeiou] | 匹配除了aeiou这几个字母以外的任意字符 |
以下是一些常用的正则表达式示例:
匹配手机号码
/^1[3-9]\d{9}$/
解释:
^ 表示匹配字符串的开头。
1 表示匹配数字1。
[3-9] 表示匹配3到9之间的任意数字。
\d 表示匹配任意数字。
{9} 表示匹配前面的数字出现9次。
$ 表示匹配字符串的结尾。
匹配电子邮件地址
/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
解释:
^ 表示匹配字符串的开头。
\w+ 表示匹配一个或多个字母、数字或下划线。
([-+.]\w+)* 表示匹配一个或多个连字符、加号或点号,后面跟着一个或多个字母、数字或下划线。这个组合可以出现零次或多次。
@ 表示匹配一个电子邮件地址中的“@”符号。
\w+ 表示匹配一个或多个字母、数字或下划线。
([-.]\w+)* 表示匹配一个或多个连字符或点号,后面跟着一个或多个字母、数字或下划线。这个组合可以出现零次或多次。
\. 表示匹配一个电子邮件地址中的“.”符号。
\w+ 表示匹配一个或多个字母、数字或下划线。
([-.]\w+)* 表示匹配一个或多个连字符或点号,后面跟着一个或多个字母、数字或下划线。这个组合可以出现零次或多次。
$ 表示匹配字符串的结尾。
匹配身份证号码
scss
Copy code
/^\d{17}(\d|X)$/
解释:
^ 表示匹配字符串的开头。
\d{17} 表示匹配前面的数字出现17次。
(\d|X) 表示匹配一个数字或大写字母X。
$ 表示匹配字符串的结尾。
匹配URL地址
/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/
解释:
^ 表示匹配字符串的开头。
(https?|ftp) 表示匹配http、https或ftp中的一个。
:\/\/ 表示匹配“://”字符组合。
[^\s/$.?#] 表示匹配除空格、/、$、?和#之外的任意字符。
. 表示匹配任意字符。
* 表示匹配前面的字符或字符组合出现零次或多次。
$ 表示匹配字符串的结尾。
匹配中文字符
/[\u4e00-\u9fa5]/
解释:
[\u4e00-\u9fa5] 表示匹配Unicode编码在4E00到9FA5之间的字符。
匹配IP地址
/^((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/
解释:
^ 表示匹配字符串的开头。
((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3} 表示匹配前面的数字(25[0-5]、2[0-4]\d、1\d{2}、[1-9]\d、\d)后面跟着一个点号,这个组合可以出现3次。
(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d) 表示匹配前面的数字(25[0-5]、2[0-4]\d、1\d{2}、[1-9]\d、\d)。
$ 表示匹配字符串的结尾。
这些是常见的正则表达式示例,但是在实际使用中可能还需要根据具体的需求进行修改和定制。
匹配URL地址
/^(http|https):\/\/([a-z0-9]+[.])?[a-z0-9]+[.][a-z]+(\/[\w\-\.\/\?\@\%\!\#\&\=\+\~\:\;\,]*)?$/
解释:
^ 表示匹配字符串的开头。
(http|https) 表示匹配http或https。
:\/\/ 表示匹配 ://。
([a-z0-9]+[.])? 表示匹配字母或数字组成的子域名(可以出现0次或1次)。
[a-z0-9]+ 表示匹配字母或数字组成的主域名。
[.] 表示匹配点号。
[a-z]+ 表示匹配字母组成的顶级域名。
(\/[\w\-\.\/\?\@\%\!\#\&\=\+\~\:\;\,]*)? 表示匹配以 / 开始的路径和查询参数(可以出现0次或1次)。
$ 表示匹配字符串的结尾。
匹配HTML标签
/<[^>]+>/
解释:
< 表示匹配 <。
[^>]+ 表示匹配除 > 以外的任意字符,出现一次或多次。
> 表示匹配 >。