正则表达式(一)

正则表达式

一、分为搜索和替换两种情况。

\b[Cc][Aa][Rr]\b
//把car、CAR、Car,或CaR都找出来,而不找那些包含car等的单词

//匹配纯文本
Ben

//.字符可以匹配任何单个的字符、字母、数字甚至是.字符本身。
sales.
..a.
.a.\.xls

//字符集合
[ns]a.\.xls
[Rr]eg[Ee]x
[ns]a[0123456789]\.xls
[ns]a[0-9]\.xls
[A-Za-z0-9]
#[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]

//取非匹配
[ns]a[^0-9]\.xls

//对特殊字符进行转义
myArr[0]//只能匹配到myArr0
myArr\[0\]//匹配到myArr[0]
myArr\[[0-9]\]
\\ // 匹配到\

//匹配空白字符
\r\n\r\n //\r\n匹配一个回车加换行组合

//一些常用的字符集合可以用特殊元字符来代替--类元字符
\d //任何一个数字字符,[0-9]
\D //任何一个非数字字符,[^0-9]
myArr\[\d\] // myArr[0-9]
\w //[a-zA-Z0-9_]任何一个字母数字下划线
\W // [^a-zA-Z0-9_]任何一个非 字母数字下划线
\s //任何一个空白字符,[\f\n\t\r\v]
\S //任何一个非空白字符,[^\f\n\r\t\v]
\b //匹配退个字符,不在类元字符之列

//匹配十六进制
\x0A //ascii为10,即\n

//匹配八进制
\011 // ascii为9,即\t

//使用POSIX字符类
#[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]] // 等价于#[a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]

绝大多数正则表达式引擎的默认行为是只返回第1个匹配结果。
转义-\是一个元字符(metacharacter,表示“这个字符有特殊含义,而不是字符本身含义”)。
正则表达式经常被简称为模式,它们其实是一些由字符构成的字符串。
不能使用一个[来匹配[本身,也不能使用.来匹配.本身。
JavaScript不支持在正则表达式里使用POSIX字符类。

在这里插入图片描述
空白元字符

在这里插入图片描述
POSIX字符类(t, v后有一个空格)

//匹配一个或多个字符
//+匹配一个或多个字符(+最少也要匹配一个字符;不匹配零个字符的情况)
a+ //匹配一个或多个连续出现的a
[0-9]+ // 匹配一个或多个连续的数字。
[0-9+] //定义了一个由数字0到9和+构成的字符集合

\w+@\w+\.\w+ // 电子邮件地址text@text.text
// 虽然ben.forta@forta.com是一个完全合法的电子邮件地址,但这个正则表达式只能匹配forta(而不是ben.forta)
// -->改进
[\w.]+@[\w.]+\.\w+ // 此处[\w.]和[\w\.]一样
// -->改进
\w+[\w.]*@[\w.]+\.\w+

* // 匹配零次或多次
B.* Forta // B Forta、B. Forta、BenForta和其他有类似规律的组合

? //?只能匹配一个字符(或字符集合)的零次或一次出现
https?://[\w./]+ //http 或者 https

// 如果你想为重复匹配次数设定一个精确的值,把那个数字写在\{和\}之间即可。
#[a-fA-F0-9]{6} // 连续出现6次
// {2, 4}的含义是最少重复2次、最多重复4次
\d{1,2}[-\/]\d{1,2}[-\/]\d{2,4} //10-6-2004, 01-01-01【/的转义序列\/】

// 匹配“至少重复多少次”
{3,} // 表示至少重复3次,与之等价的说法是“必须重复3次或更多次”。
\d+: \$\d{3,}\.\d{2} // \d{2}匹配小数点后面的两位数字

<[Bb]>.*</[Bb]> // 会匹配到<b>ak</b>and<b>hi</b>作为一个整体
<[Bb]>.*?</[Bb]> //会匹配到<b>ak</b>和<b>hi</b>

+是一个元字符。如果需要匹配+本身,就必须使用它的转义序列+。

在这里插入图片描述
贪婪型元字符会尽可能地从一段文本的开头一直匹配到这段文本的末尾,而不是从这段文本的开头匹配到碰到第一个匹配时为止。用懒惰型元字符来防止过度匹配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值