正则表达式大全-附带常用的正则表达式【自用查询】

基本概念

正则表达式是一种查找以及字符串替换操作。在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。正则表达式在文本编辑器中广泛使用,比如正则表达式被用于检查文本中是否含有指定的特征词、找出文中匹配特征词的位置、从文本中提取信息等等。
与文本编辑器相似,几乎所有的高级编程语言都支持正则表达式。

正则表达式一般就是由一些普通字符,和一些元字符组成。
普通字符:本身作为一个字符时,它不具有其他含义,像我们常用的大小写字母和数字。
元字符:除了本身作为一个字符外,他还可以表达其他含义。

元字符

符号用法示例
.匹配除换行符以外的任意字符匹配字母或数字或下划线或汉字例如 . 可以匹配 1,n,*,+,- ,等
\w匹配字母或数字或下划线或汉字a-z、A-Z、0-9、_、汉字
\s匹配任意的空白符‘’
\d匹配数字0-9数字
\b匹配单词的开始或结束\blove\b 匹配单词love
^匹配字符串的开始^\d{8}$ 匹配8位数字的qq号
$匹配字符串的结束^\d{15}$ 匹配15位数字的手机号

反义符

符号用法示例
\W匹配任意不是字母,数字,下划线,汉字的字符匹配如 +,-,*等
\S匹配任意不是空白符的字符如:1,* ,)
\D匹配任意非数字的字符如字母、汉字
[^x]匹配除了x以外的任意字符如abc
[^abc]匹配除了abc这几个字母以外的任意字符如def

限定符

符号用法示例
*重复零次或更多次例如:可能为空 或 任意数字 (2、3、4、5…)
+重复一次或更多次例如:可能为1个或多个数字 1,23,234,2345,…
?重复零次或一次例如:可能为空或者任意的一个数字1,2,3,4…
{n}重复n次\d{8}匹配重复8次数字 例如:123456768
{n,}重复n次或更多次\d{4,}匹配重复至少4次数字 例如:1234,12345,124244
{n,m}重复n到m次^\d{8,11}$ 匹配重复8-11次数字 例如:12345678,123456789,1234567890

懒惰限定符

符号用法
*?重复任意次,但尽可能少重复
+?重复1次或更多次,但尽可能少重复
??重复0次或1次,但尽可能少重复
{n,m}?重复n到m次,但尽可能少重复
{n,}?重复n次以上,但尽可能少重复

其他符号

符号用法示例
\ 引用符表示转义例如“\.”用来匹配点字符,而非任何字符的通配符
“或” 操作 |表示匹配结果是 | 左右其中一个ab|cd 表示匹配的结果是ab或者cd其中一个
方括号的使用 []表示某些字符允许在一个字符串中某一个特定位置出现[ab] 表示一个字符串中有一个a 或 b
小括号的作用 ()表示分组检索^(abc)+$ 表示 abc整体至少出现一次

常用的正则表达式公式

匹配汉字

^[\u4e00-\u9fa5]{0,}$

验证Email地址

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

验证电话号码

^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$

验证身份证号(15位或18位数字)

^\d{15}|\d{18}$

匹配网址URL

^(f|ht){1}(tp|tps):\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- ./?%&=]*)?

匹配国内固话

\d{3}-\d{8}|\d{4}-\d{7}

匹配特定数字

^-?[1-9]\d*$ //匹配整数
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数

^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数

匹配日期

“yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。
^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

匹配密码

包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。
^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

匹配IP-v4地址

\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b

匹配特定字符串

^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个大写的英文字母组成的字符串
^[a-z]+$ //匹配由26个小写的英文字母组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值