博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则 (入门篇)
阅读量:6670 次
发布时间:2019-06-25

本文共 1197 字,大约阅读时间需要 3 分钟。

#####如果你对正则感兴趣,读完这篇文章,一定会有收获~_^

#简单来说 ###正则一般代指正则表达式 ###正则表达式是从"复杂数据"中抽取"有用数据"的公式

#写好正则表达式的两个要点:

##1.正确匹配字符数量(相关符号:*,+,?,{}) ##2.正确匹配字符种类(相关符号:除上面符号以外的其它符号^_~)


###相关符号

####.代表"万能匹配";//可以匹配除了"\n"(换行符)之外的任何单个字符

####?代表"不要贪婪";//用在*,+,?后面,表示匹配的越少越好 ####?也代表"非〇即一";

####^代表"除了你";//在中括号内,如[^_]表示单个非下划线字符 ####^也代表"匹配首位"; ####$代表"匹配末位"; ####*代表"〇至无穷"; //大于等于0的整数

####+代表"一至无穷";//大于等于1的整数 ####|代表"我们都一样";//|表示"或"


####\d代表"匹配数字";//0-9 ####\D代表"匹配非\d" ####\w代表"匹配字符";//0-9,A-Z,a-z,_ ####\W代表"匹配非\w"


###几个括号 ####大括号{}用来确定数量

re.match表示正则模块里面的match函数(match函数默认从字符串首部开始匹配),\d匹配单个数字{3}代表匹配3个

###中括号[]用来确定匹配字符的种类 ####第一种写法

re.match(r"[123]{1}根烟","1根烟")re.match(r"[123]{1}根烟","2根烟")re.match(r"[123]{1}根烟","3根烟")复制代码

中括号内的123可匹配单个1或2或3

####第二种写法

re.match(r"[1,2,3]{1}根烟","1根烟")re.match(r"[1,2,3]{1}根烟","2根烟")re.match(r"[1,2,3]{1}根烟","3根烟")复制代码

####小括号()用来为表达式整体匹配后,"按需提取"(经常和函数group配合使用)

####如提取域名中的词组(以简书域名为例) re.match(r".*//.*?\.+(.*?)\.+[^\.]*","http://www.bilibili.com").group(1)

什么是贪婪匹配?

  • 贪婪的总是尝试匹配尽可能多的字符;(大多编程语言的正则默认贪婪)
  • *,?,+,{m,n}后面加上即可使贪婪变成非贪婪.

#写在最后

  • 正则表达式相当于编程的小九九,背的时候有点恶心,但用起来非常爽!
  • 正则表达式,最早用于唯一标示复杂的神经网络,现可用于"唯一标示"某个字符串,也就是"唯一匹配"字符串
  • 正则表达式使用了大量的特殊字符,这些特殊字符在不同的语境下还会有不同的含义,所以正则的表达式看起来有点像乱码(表象无序的乱码,底层极致的规范)

转载地址:http://mslxo.baihongyu.com/

你可能感兴趣的文章
PHP框架认识初步
查看>>
给 Android 初学者的 Gradle 知识普及
查看>>
分模块开发创建Action子模块——(九)
查看>>
基于Nginx实现一个自己的HTTP模块
查看>>
LeetCode(34)-Palindrome Number
查看>>
阅读《Android 从入门到精通》(24)——切换图片
查看>>
SimpleDateFormat线程不安全及解决的方法
查看>>
Unity---------Mesh理解
查看>>
hdu 1728 逃离迷宫 bfs记转向
查看>>
一分钟学会 ConstraintLayout 之从属性角度理解布局
查看>>
线程 Timer TimerTask 计时器 定时任务 MD
查看>>
[js高手之路]原型式继承与寄生式继承
查看>>
MBR分区操作-增加、扩展、删除
查看>>
geoserver使用curl发布 imagemosaic(转载)
查看>>
RabbitMQ 参数们的Power “续”
查看>>
windows 显示桌面.scf
查看>>
git 忽略文件
查看>>
layui 数据表格 根据值(1=业务,2=机构)显示中文名称
查看>>
【Django】pip 安装和卸载 Django
查看>>
Go语言基础:method
查看>>