正则表达式-贰

正则学习-为了所需特殊字符串的匹配和截取

                                                                                                     注:请看完上一章再看本章

例二:匹配一个数字(该例取于javascript精粹)

var parse_number = /^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$/i;
var number1 = 123.1e-3;
var number2 = 123.1.e-3;
parse_number.test(number1); //true
parse_number.test(number2); //false

首先确定数字匹配逻辑,开头可能有正负号,接着是数字,可能为小数点加上数字,可能有e,e后面有+或者-,再有数字。

^

匹配字符串开始

$

匹配字符串结尾

-?

匹配-字符,?表示可有可无

\d+

\d表示一个数学字符,+表示匹配一次或者多次

(?:\.\d*)? 非捕获型可选分组

\.转义为.字符,

\d*表示匹配0次以上数学字符.

(?:e[+\-]?\d+)? 非捕获型可选分组

e匹配开头,

[+\-]?表示匹配+或-字符,?表示可无,

\d+表示匹配一次以上数学字符。

i

表示匹配大小写


总结:其实这个选取的匹配并不完全匹配数字逻辑。


小知识:

1.标识符 i匹配大小写/g匹配全局(可以多次匹配)/m多行匹配,

2.特殊字符 \ / [ ] ( ) { } ? + * . ^ $ - | 若要为字符则用\进行转义,

3. '.'匹配行结束符外的所有字符,

4.\d = [0-9], \D = [^0-9], 大小写都是相反 ,\s匹配空白符


例三,匹配首尾空白符

var regexp_blank = /^\s+|\s+$/g;
var str = "  a a ";
str.replace(regexp_blank, '');// "a a"

^

匹配行首

\s+

匹配一次以上的空白符

|

或者

$

匹配行位

g

匹配全局(多个地方)

总结:

乍一看我也没搞懂 \s+|\s+ 是个什么意思,匹配空白或空白?

原来是 ^\s+|\s|$ ,意为匹配行首空白一次以上或匹配行尾空白一次以上。

初学乍到,不懂的还有很多。先把握大方向,再理清细节吧。

知识点:

1.^匹配文本开头,$匹配文本结尾,

2./^[a-z]/只匹配字母为首的行,/[a-z]$/只匹配字母结尾的行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值