您现在的位置是:首页 > 博文答疑 > 正则表达式 快速掌握的方法博文答疑

正则表达式 快速掌握的方法

Leo2023-05-26【9】

简介正则表达式 快速掌握的方法

大家常常需要使用到正则表达是,但是正则表达式的如果不长时间使用,确实不容易记住。那么这里有一个推荐的学习方法,可以帮助我们快速掌握正则。

科普 什么是正则表达式:

正则是一个文本处理工具:

1.校验数据的有效性

2.从文本中提取内容

3.文本内容替换

 

如何快速记住元字符 是快速掌握正则的关键。我们需要把元字符分分类:

  1. 基础、
  2. 空白符
  3. 量词
  4. 范围
  5. 边界 
1.基础 .  任意字符(换行符除外)
\d 任意数字  \D任意非数字
\w 任意数字字母下划线 \W 数字字母下划线以外的任意字符
\s 任意空白符  \S任意非空白符

 

2.空白符 \r 回车符
\n 换行符
\f 换页符
\t 制表符
\v 垂直制表符

 

3.量词 * 含义: 0 到多次
+ 含义: 1到多次
?  含义:0到1次,如 colou?r
{m}含义:出现m次

{m,n} 含义:m到n次

{,n} 其中m不写代表0,至多n次

{m,} 其中n不写代表无穷大,至少m次

 

4.范围 | 或, 如 ab|bc 代表 ab 或bc
[...] 多选一, 括号中任意单个元素
[a-z]匹配a 到 z 之间任意单个元素(按ASCII表,包含a, z)
[^...] 取反, 不能是括号中的任意单个元素

 

5.边界 ^ 匹配行的开始;多行模式时,可以匹配任意行开头
$ 匹配行接触;多行模式时,可以匹配任意行结尾
\b 匹配单词边界
\A 仅匹配整个字符串的开始,不仅支持多行模式
\Z 仅匹配整个字符串的结束,不支持多行模式

 

匹配还有一个原则:贪婪&非贪婪

  • 贪婪:表示次数的两次,模式是贪婪的;默认尽可能多的去匹配
  • 非贪婪: “数量”元字符后加 ? 找出长度最小切满足要求的

例子1(贪婪匹配):

正则:“.+”

测试结果: "the little cat" is a toy, it looks "a little bad".

 

例子2(非贪婪匹配):

正则:“.+?”

测试结果: "the little cat" is a toy, it looks "a little bad".

 

 

环视 (?<=Y)X :匹配前面是Y的X
(?<!Y)X  :匹配前面不是Y的X 
X(?=Y)   :匹配后面是Y的X
X(?!Y)    :匹配后面不是Y的X

例子:

正则:(?<=<li>)(.+)(?=</li>)

结果:

<ul>

    <li>item1</li>

    <li>item2</li>

    <li>item3</li>

</ul>

 

 

子组 (正则) 将regex 保存成一个子组
(?P<name>正则) 命名子组,将regex 保存成名称为name的子组
(?:正则) 仅分组,不保存这个子组
\分组编号  重复某个子组

 

到此,学习方法就分享到这里。当然,这里这是给大家一个总结,怎么学习;以及怎么快速的记忆正则表达式。正则表达式全部内容大家也可以买书回家自己研究。不过这里推荐两个给大家:

正则表达式 – 教程 | 菜鸟教程 (runoob.com)  学会这里的知识,其实基本够用了。

regex101: build, test, and debug regex  这里是个正则的工具,大家可以在这里实验自己的表达式,当然上面也有很多例子供大家参考。

 

最后,出一个思考题:如何从youku网页中找出视频链接,并下载?

提示:http:/v.youku.com/v_show/.*?html   视频链接后, 使用 you-get 工具进行下载。

 

微信关注公众号二维码,可以获得更多资料。