一天学会正则表达式--基础篇(内附练习题)

注意 本文√表示有匹配结果,×表示无结果

正则表达式

正则表达式(Regular Expression)是一种特殊的文本格式,常用于匹配有某种句法规律的字符串,或从大量数据中找出特定语法数据。正则表达式功能强大,可以提高编程效率,且对于特定需求能提供更多解决方法。

基础语法

在/和/g中间写入字符就构成最基础的正则表达式。如:

/JavaScript/g
可以匹配所有带JavaScript的字符串
JavaScript es6   √
JavaScript  √
js   ×
练习题(写出正则表达式对答案)
匹配所有带有python的字符串
python3   √
learn python  √
pyton  ×

练习题可在 https://regexr-cn.com/验证

字符匹配

[]中填入字符可以匹配对应单个字符。如:

/[Cc]ode/g   // 匹配带有Code或者code的字符串
Codesdada  √
codetaioth  √
Cras  ×
练习题(写出正则表达式对答案)
匹配所有带有JavaScript和javaScript的字符串
JavaScript ES6  √
html javaScript css  √
javascript  ×

连字符

[] 搭配 - 表示一个区间,匹配这个区间的数据。如:

/[0-9]/g    // 表示匹配带数字的字符串
459dawr  √
rawr  ×
/[0-9A-Za-z]/g   // 表示匹配带 0-9 A-Z a-z的字符串
练习题(写出正则表达式对答案)
匹配所有带有大小写字母的字符串
adcef  √
45Ihi  √
##4548  ×

取反

[] 搭配 ^ 表示取反,匹配相反结果。如:

/[^0-9]/g   // 表示匹配非全数字的字符串
4897  ×
dawr125  √
iohio  √
练习题(写出正则表达式对答案)
匹配出除‘怎么全是homo喜’外的字符串
怎么全是homo恼   √
怎么全是homo喜   ×

转义字符

有一些字符是无法直接匹配的,这时候就需要转义字符 \ 。
\f 匹配换页符
\n 匹配换行符
\s 匹配空白字符
\t 匹配一个制表符
等等

快捷匹配

\w 与非特殊单词字符匹配,即匹配大小字母、数字和_。
\d 与任意数字匹配
\W 与特殊单子字符匹配
\D 与非数字匹配

/\w/g
dw78971 √
?$% ×
/[\w]/g   // 相当于[A-Za-z0-9_]
练习题(写出正则表达式对答案)
匹配所有非数字字符串
8979  ×
regular  √
?%#  √

单词边界

用两个 \b 围起来称作一个边界,边界只匹配被隔出来的字符。如:

/\bcode\b/g   // 
codesdsa ×
code-sdsa √
dd,code,h √

开始和结束

开始(^)和结束($),可用于更准确的匹配。如:

/code$/g    // 匹配以code结尾的字符串
code √
dwacode √
dwacodedwa ×
/^code$/g  // 全匹配code字符串
code √
scodes ×

注意 没加开始和结束的正则表达式,在字符串中任意位置满足语法即匹配。

练习题(写出正则表达式对答案)
匹配所有以CSDN结尾的字符串
hdiaCSDN  √
CSDNdwe   ×
CSDNbad   ×

任意字符

. 表示匹配除换行符外任何单个字符

可选字符

? 表示其前一个字符出现零次或一次,如:

/codes?/g  // 匹配带code或codes的字符串

重复

{N} 可表示其之前的字符出现N次
{N,M} 可表示其之前的字符出现最少N次最多M次,如:

/\d{2}/g    // 表示每次匹配2个数字

/^\d{3,4}-\d{8}$/g  // 全匹配
023-987413540124-64872141

重复还有两个速写符号。
+ 表示匹配1-无数个
* 表示匹配0-无数个

/^python\d*$/g 
python √
python3 √
pythons ×
练习题(写出正则表达式对答案)
匹配手机号码(总共11位,第一位数字必须以1开头,第二位数字可以是[3,4,5,7,8]中的任意一个)
15678945612  √
19465789123  ×
34781566782  ×
13768489113  √
134794878916  ×

匹配邮箱(@前面可用大小字母、数字和_,@后面可用大小字母和数字)
4896@163.com  √
nami@kkang.edu  √
rjaiowr?48@qq.com  ×

总结

练习题有多种解法,可以多想几种出来,熟悉正则表达式语法。
至此,正则表达式基础语法已完,使用这些语法就能完成编程过程中绝多数字符串匹配问题,后续进阶篇看个人需求。
进阶篇连接 https://blog.csdn.net/qq_30258721/article/details/126213016

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮炭烤策划

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值