js正则表达式

正则表达式基本规则

1、普通字符

包括:字母、数字、汉字、下划线、没有特殊定义的标点符号。
(在匹配一个字符串时,匹配与之相同的一个字符)


2、简单的转义字符

(1)在字母面前加”\”来代替一些不方便书写的字符,匹配与之相同的一个字符

表达式可匹配
\r回车
\n换行符
\t制表符

(2)在有特殊用处的标点符号前加“\”代表该符号本身,匹配与之相同的一个字符

表达式可匹配
\匹配”\”符号本身
\^匹配”^”符号本身
\$匹配”$”符号本身
\.匹配”.”符号本身
\(和\)匹配”(“和”)”
<script type="math/tex; mode=display" id="MathJax-Element-37">和</script>
匹配”[“和”]”
\{和\}匹配”{“和”}”
\?匹配”?”符号本身
\+匹配”+”符号本身
\*匹配”*”符号本身
\|匹配”

(3)匹配“多种字符”中任意一个字符的表达式

表达式可匹配
\d任意一个数字:0~9中任意一个
\D匹配所有非数字字符
\w任意一个字母数字或下划线:a~z、A~Z、0~9、_中任意一个
\W匹配所有字母、数字、下划线以外的字符
\s包括空格、制表符、换页符在内的空白字符中的任意一个
\S匹配所有非空白字符
.匹配除了换行符(\n)以外的任意一个字符

(4)使用[]自定义能够匹配多种字符的表达式

表达式可匹配举例
[]包含一系列字符匹配[]中包含的任意一个字符[ab23@]:可匹配a、b、2、3、@中任意一个字符;
[a-g]:匹配a到g之间的任意一个字符
[^]包含一系列字符匹配[]以外的任意一个字符[^ab23@]:匹配除了a、b、2、3、@意外的所有字符中的一个;
[^C-H3-7]:匹配”C~H”、”3~7”之外的任意一个字符

(5)修饰匹配次数的特殊符号

表达式作用举例
{n}表达式重复n次a{2}相当于aa
{m,n}表达式至少重复m次,最多重复n次ab{2,3}相当于abb或者abbb
{m,}表达式至少重复m次\w\d{2,}可以匹配a12,b23,c345,d4567,…
?匹配表达式0次或者1次a[bc]?可以匹配ab或者ac或者a
+表达式至少出现一次a+b可以匹配abaabaaab,…
*表达式不出现或者出现任意次a*b可以匹配b,ab,aab,aaab,…

(6)代表抽象意义的特殊符号

表达式作用举例
^与字符串开始的地方匹配,不匹配任何字符^aa只能匹配在字符串开头的aa
$与字符串结束的地方匹配,不匹配任何字符zzz$只能匹配位于字符串结尾处的zzz
\b匹配一个单词的边界.\b在匹配#@#abc时匹配到的内容是#a\b本身不匹配任何字符,但是它要求在它在匹配结果中所处的位置一边是\w一边是非\w
\B匹配非单词边界即左右两边都是\w或者左右两边都不是\w
|左右表达式之间是“或”的关系,匹配左边或者右边a|b可以匹配a或者b
()1、在修饰匹配次数时在,整个括号表达式作为一个整体;
2、取匹配结果的时候,括号中的表达式可以被单独得到
1、(abc){2}匹配abcabc

若希望()括号表达式匹配的结果不进行记录,可以使用(?:xxxxx)形式


正则表达式高级规则

1、匹配次数的贪婪与非贪婪

模式效果用法
贪婪模式尽可能“要匹配”eg:(d)(\s+)
非贪婪模式尽可能“不匹配”在修饰匹配次数的特殊符号后再加上一个 “?” 号
eg:(d)(\s+?)

2、反向引用
表达式在匹配时,小括号 “( )” 包含的表达式所匹配到的字符串也会被记录下来【括号表达式的第二个作用】。
可以通过在“\”后面接一个数字,引用前面的括号匹配到的字符串。eg:\1匹配的是第一对括号内匹配的字符串,\2匹配的是第2对括号内匹配到的字符串,以此类推。【括号的排序按左括号”(“为准】
3、预搜索&&反向搜索

方法名表达式匹配
预搜索(?=xxxx)
(?!xxxx)
所在缝隙右边必须能够匹配xxxx这部分表达式【xxxx不在匹配的表达式范围内】
所在缝隙右边必须不能匹配xxxx这部分表达式
反向预搜索(?<=xxxx)
(?<\!xxxx)
所在缝隙左边必须能够匹配xxxx这部分表达式
所在缝隙左边必须不能匹配xxxx这部分表达式

其他通用规则

形式可匹配
\xXX匹配ASCII码编号在0~255范围的字符。eg:\x21代表”!”
\uXX匹配任何字符
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值