JS中正则表达式

1.string.replace(RegExp,replacement):用来将RegExp能匹配的文本替换为replacement,若设置为全局模式,所有能匹配的文本都会替换
如果要在replacement字符串中引入分组,则可以使用$num.如:
“2010-12-20”.replace(/(\d{2}-(\d{2})-(\d{2})/,"$2/$3/$1")
str.replace(RegExp,function) 这个方法里的函数的接收参数是一个字符串,返回参数也是一个字符串,如:document.write("one two three".replace(/\bt[a-zA-Z]+\b/)g, function(m){return m.toUpperCase()}))
one TWO THREE
str.split(RegExp): 这个方法使用一个正则表达式切分字符串

2.字符组

没加^和$的str,是指可以匹配str的任意子串,加了代表要匹配整个str

[0-9]===\d, \d能匹配的字符\D一定不能匹配,互补(注意只能匹配一个字符)

[0-9a-zA-Z]===\w,\w能匹配的字符\W一定不能匹配,互补

[  \t\r\n\v\f]====\s, \s能匹配的字符\S一定不能匹配,互补

所以[\s\S]、[\w\W]、[\d\D]能匹配“任意字符”
排除型字符:[^...],在当前位置匹配一个没有列出来的字符,必须要匹配一个字符串

元字符:[、]、^、$、- 都是元字符,“-”只是用来用来指示范围

3.量词 限定之前的元素出现,这个元素可以是一个字符或者一个字符组还可以是一个表达式

6个数字:\d{6}

str的长度范围:{m,n} 限定之前的元素能够出现的次数,m是下限,n是上限,都是闭包。\d{4,6}表示单个字符至少出现4次,最长6个字符。若不确定上限也可以省略,写成{m, }。如果没有明确下限则默认就是0

常用量词:* ==={0, },可能出现也可能不出现,出现次数没有上限

+ ==={1, },至少出现一次

?==={0,1},至多出现1次,也可能不出现

例子:匹配http/https, 可以用https?

匹配价格100/¥100,¥?100

html中的tag匹配:^<[^>]+>$, 中间的若干字符用[^>]+来表示

双引号:“[^"]*"

4. 提取数据

re.findall(pattern,string),在str中找到满足pattern的字符串,返回的是一个数组。

5. 点号(.)

可以匹配除了换行符\n 之外的任意字符

6. 匹配优先量词和忽略优先量词

7.转义

8.分组

括号的功能就是分组,分组可以用量词限定出现次数

匹配open tag的正则表达式:

openTagRegex=r"^<^/](^>]*[^/])?>$"

emailRegex=

emailRegex=r"^[-\w.]{0,64}@([-a-zA-Z0-9]{1,63}\.)*[-a-zA-Z0-9]{1,63}$"

身份证号码

identidyRegx=r"[1-9]\d{14}(\d{2}?[0-9x]?)"

9.多选结构

(...|...)在括号内以竖线分开多个子表达式,这些子表达式也是多选分支

identidyRegx=r"([1-9]\d{14}|[1-9]\d{14}\d{2}[0-9x])"

10,捕获分组

使用括号(捕获型括号)之后,正则表达式会保存每个分组真正匹配的文本,等到匹配完成之后,通过group(num)之类的方法引用分组在匹配时捕获的内容。num表示对于括号的编号,从左向右从1开始。

可以用捕获分组提取具体信息

11. JS中删除多余的空格字符 (?m) 表示匹配多行

删除行首的空白字符-使用的正则表达式是:(?m)^\s+

删除行尾的空白字符串的正则表达式:(?m)\s+$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值