正则表达式

推荐 “微信读书” 的这本《正则表达式必知必会》,零基础小白也简单易懂


在线测试工具   <——点ta

1、匹配单个字符 

.      匹配【单个】除了换行符以外的字符

\     属于元字符(在正则表达式里有着特殊含义的字符),用来进行【转义】;

[ ]   定义一个字符集合,必须匹配该集合里的字符【之一】;字符集合可以用元字符^来求非;这将把给定的字符集合强行排除在匹配操作以外——除了该字符集合里的字符,其他字符都可以被匹配。

        一般来说,当在字符集合里使用的时候,像.和+这样的元字符将被解释为普通字符,不需要被转义——但转义了也没有坏处。
       例:[\w.]等价于[\w\ .]

        例:.a[^0-9]\.png 匹配不到 na1.png     

-     连字符,如0-9,A-Z,a-z (A-z不常用,因为还有[、^等ASCII 码排在Z-a 之间的字符),字符区间的首、尾字符可以是ASCII字符表里的任意字符。但在实际工作中,最常用的字符区间还是数字字符区间和字母字符区间。- (元字符)是一个特殊的元字符,作为元字符它只能用在[ ]之间。在字符集合以外的地方,-只是一个普通字符,只能与-本身相匹配。因此,在正则表达式里,-字符不需要被转义。

        例:匹配RGB值,十六进制数字(0123456789ABCDEF):#[0-9A-Fa-f]{6}   不区分大小写

\d匹配任何【一个】数字,等价于 [0-9]
\D匹配任何非数字,等价于[^0-9]
\w任何一个字母数字下划线,等价于 [0-9A-Za-z_]
\W任何一个非字母数字下划线的字符,等价于 [^0-9A-Za-z_]
\s匹配任何一个空白字符,等价于[\f\r\n\t\v]
\S匹配任何一个非空白字符,等价于[^\f\r\n\t\v]
\b匹配单词边界
\B匹配非单词边界
^定义整个字符串开头
$用来定义整个字符串结尾
( )子表达式,目的是为了把那些子表达式当作一个独立元素来使用
|或运算,把位于它左边和右边的两个部分都作为一个整体来看待

2、匹配多个字符

+       一次或多个次(至少一次);在给一个字符集合加上+后缀的时候,必须把+放在这个字符集合的外面。 等价于{ 1, };         —— +?是+的懒惰型版本
    例:[0-9]+ 匹配连续出现的一串数字

*       零次或多次;等价于{ 0, };          —— *?是*的懒惰型版本,匹配到第一个符合条件的位置,停止

?     零次或一次; 等价于 { 0,1 };

{ n }  匹配n次;  { a,b } 至少a(可以为0)次,至多b(可以不填)次;  { n, }? 是 { n, }的懒惰型版本

3、向前后查找♥♥♥♥♥♥

【向前查找】:向前查找指定了一个必须匹配但不在结果中返回的模式。该模式是以?=开头的子表达式,需要匹配的文本跟在=的后面。

【向后查找】: 该模式是以?<=开头的子表达式,需要匹配的文本跟在=的后面。

        例:str="<h1>abdecdef</h1>";  str.match(/(?<=\<\/h1>).+(?=\<\/h1>)/);  输出:”abdecdef“

4、示例成果

(1)匹配ip地址:((0|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}(0|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))
(2)匹配重复出现的单词:[ ]+(\w+)[ ]+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值