正则表达式中常见的的元字符和修饰符

正则表达式由两部分组成:元字符、修饰符

元字符

元字符又分为量词元字符、特殊元字符、普通元字符

量词元字符

元字符含义
*0~多次
+1~多次
?0次 或 1次
{n}出现n次,n为0或正整数
{n,}n~多次
{n,m}n~m次

特殊元字符

元字符含义
\转义字符,可以普通转特殊 or 特殊转普通
.除了\n以外的任意字符
^以…开头
$以…结束
\n换行
\t一个制表符tab(四个空格)
\d0~9之间的一个数字
\D非0~9之间的一个数字
\w数字、字母、下划线中的任一字符
\W非数字、字母、下划线的任一字符
\s一个空白字符(空格、制表符、换页符等)
\S除了空白字符的任一字符
\b一个单词边界
\B除单词边界的任一字符
xy
[xyz]x或y或z中的一个字符
[^xy]除x、y之外的任一字符
[a-z]a-z范围内的任一字符, [A-Z],[0-9]同理
[^a-z]非a-z范围内的任一字符
()分组
(问号冒号)只匹配不捕获
(?=)正向预查
(?!)负向预查

特殊详细说明:

  • ^ $
    • /^\d/:以数字开头
    • /\d$/:以数字结尾
    • /\d/:只要包含数字即可
    • /^\d+$/:只能是1~多个数字
    • 验证手机号码(11位, 以1开头): /^1\d{10}$/
  • \ 转义字符
    • /^2.3$/ => 注:.不代表小数点,而是除\n以外的任一字符
    • 若只想匹配2.3,则应将.进行转义,即/^2.3$/
    • let str = "\d"; reg = /^\d$/ => 不匹配,字符串中\d也有特殊含义;/^\\d$/.test("\\d") => 匹配
  • x|y
    • eg. let reg = /^18|29$/,我们想要得到18或29。但18、29、129、189、1829、829、182全部符合!
    • 根据上例,对于2位及以上的数字,直接使用x|y这种方式存在很乱的优先级问题。一般我们使用()分组,改变优先级,即/^(18|29)$/
  • []
    • []中出现的字符一般都代表本身的含义。eg./^[@+]+$/,第一个+代表它本身,即"+"字符;第二个+代表出现1~多次。
    • 注意:[\d]的本身含义就是0-9范围内的一个数字,[\d]将其转义就变为普通字符[\d],代表""或者"d"其中的一个。
    • []中不存在多位数。例如,[18]的含义为1或8,而不是18;[10-29]代表1、0到2(其中一个)、9三个字符,而不是10到29。

普通元字符

代表本身含义,无需记忆。

修饰符

修饰符含义
i忽略大小写匹配
m忽略换行匹配
g全局匹配
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值