开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4023|回复: 12
收起左侧

正则表达式SoEasy 9 分行匹配:尖号与美元符号 讲师:雪山凌狐

[复制链接]

结帖率:0% (0/1)
发表于 2017-6-20 10:52:31 | 显示全部楼层 |阅读模式   美国
当当当!!!欢迎收看雪山凌狐教程!我是讲师雪山凌狐。
感谢大家点进来查看我们这套教程的第9课!!!一流精良制作PPT+视频教程详细讲解,包君满意!
如果觉得课程对你有帮助的话,欢迎给我赠送好评和精币哦~他们是免费的,不会消耗自己的哟~让更多的人看到!


视频教程:


文字教程:
很多同学可能已经注意到了在我们正则表达式的匹配工具中有这么几个小框框,可以进行勾选或者不勾选。之前的课程我们一直没有详细的提及它们,相信有的同学已经想要知道它们是用来做什么的了。在这里我们来详细讲解一下这几个选择框分别的定义和使用:
zhengze9-1.jpg

全局匹配:勾选视为匹配返回所有匹配到的结果,不勾选视为只返回找到的第一个结果。默认勾选。

区分大小写:勾选视为匹配时进行大小写的区分,不勾选则不管大小写(所见即所查的时候)。默认不勾选。

多行模式:不勾选视为将整个源文本视为一个整体来匹配,勾选视为一行一行的看是否匹配。配合尖号和美元符号使用。默认不勾选。


^与$        这两个符号用来定义源文本中一行的开头和结尾,本身不匹配任何字符,行的划分以换行符或者回车符作为分隔。可以单独使用,只定义开头或者只定义结尾。


我们来用一点例子做一下说明:

比如我们有这个源文本:

全局匹配:勾选视为匹配返回所有匹配到的结果,不勾选视为只返回找到的第一个结果。默认勾选。

区分大小写:勾选视为匹配时进行大小写的区分,不勾选则不管大小写(所见即所查的时候)。默认不勾选。

多行模式:不勾选视为将整个源文本视为一个整体来匹配,勾选视为一行一行的看是否匹配。配合尖号和美元符号使用。默认不勾选。


^与$        这两个符号用来定义源文本中一行的开头和结尾,本身不匹配任何字符,行的划分以换行符或者回车符作为分隔。可以单独使用,只定义开头或者只定义结尾。


我们来用一点例子做一下说明:

比如我们有这个源文本:

全局匹配:勾选视为匹配返回所有匹配到的结果,不勾选视为只返回找到的第一个结果。默认勾选。

区分大小写:勾选视为匹配时进行大小写的区分,不勾选则不管大小写(所见即所查的时候)。默认不勾选。

多行模式:不勾选视为将整个源文本视为一个整体来匹配,勾选视为一行一行的看是否匹配。配合尖号和美元符号使用。默认不勾选。


^与$        这两个符号用来定义源文本中一行的开头和结尾,本身不匹配任何字符,行的划分以换行符或者回车符作为分隔。可以单独使用,只定义开头或者只定义结尾。


我们来用一点例子做一下说明:

比如我们有这个源文本:

1    第一课

2    第二课

3    第三课

可以看到这个源文本是有规律的,每一行内容不同但是具有一定的模式,都是先写一个数字,然后几个空格,然后再是第几课。像这种分行有规律的源文本我们就可以考虑使用多行模式进行匹配了。如图,我们可以把每一行都匹配出来(请务必记得一定要勾选多行模式):

zhengze9-2.jpg

当然现实中的源文本比这个要复杂的多,这里仅仅演示一下尖号与美元符号的使用。更复杂的情况等我们讲到实战的例子的时候再跟大家讲解。


同时,尖号和美元符号也可以单独进行使用,单独定义开头或者结尾,比如我们有这个源文本:

1231243211746
24325341739812
1231236721313
1231242351412311

这也是多行的文本,每一行是一串没有规律的数字。我们来完成以下几个任务:

1. 要求匹配出位数刚好在13位的行:

这种情况必须定义开头和结尾,如果我们不定义尖号和美元符号,写\d{13},那么匹配结果是这样的:

zhengze9-3.jpg

它会错误的将每一行截取13位来进行匹配,所以我们应该在正则表达式头尾加上尖号和美元符号:^\d{13}$

zhengze9-4.jpg

这样就匹配到只有13位的两行了。

2. 要求匹配以12开头的行:

以什么为开头,就用尖号来定义开头就可以了,结尾不用管所以我们不需要使用美元符号。

zhengze9-5.jpg

3. 要求匹配以1结尾的行:

只使用美元符号即可:

zhengze9-6.jpg

以上就是关于尖号与美元符号的多行匹配的使用。


当我们的源文本是按一行一行有规律的内容时,可以考虑使用多行模式进行匹配,活用尖号与美元符号。有的时候它们的使用不是特别的常见,多数时候我们都不勾选多行模式进行匹配。但是在需要的时候,它们就很好用了。


额外特别补充:

基于之前学过的字符集定义的内容,这里补充一下,尖号^如果把它放在中括号中是有不一样的含义的,尖号放在中括号里内容的开头表示“非”的意思,也就是不是后面写的字符集定义以外的任何内容的意思。比如我们有一个源文本abcdefg123,如果我们写一个正则表达式:[^0-9abc],那么就会把除了所有数字以及字母abc以外的内容匹配出来。在教学视频中我们测试了一下,尖号必须得写在中括号里面的开头才有效果,如果写在中间不起效果。

zhengze9-7.jpg


高清源文件下载:

链接:http://pan.baidu.com/s/1o8ykBiU 密码:lryf

下载:[url=https://share.weiyun.com/b9d78d27facfe3178089bbe0697bec57https://share.weiyun.com/b9d78d27facfe3178089bbe0697bec57]https://share.weiyun.com/b9d78d27facfe3178089bbe0697bec57[/url]



第9课课后练习地址:

http://bbs.125.la/thread-14034349-1-1.html



结帖率:33% (1/3)
发表于 2017-6-27 01:11:15 | 显示全部楼层   广东省深圳市
支持一个!!!!!
回复 支持 反对

使用道具 举报

结帖率:93% (13/14)

签到天数: 20 天

发表于 2017-6-25 21:18:15 | 显示全部楼层   陕西省商洛市
支持一个!!!!!
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
 楼主| 发表于 2017-6-25 01:20:04 | 显示全部楼层   美国
jiejie321 发表于 2017-6-25 00:23
为什么没看到第七课?

第7课地址:http://bbs.125.la/forum.php?mod= ... 14033927&extra=
怎么会没看到呢?~
回复 支持 反对

使用道具 举报

结帖率:85% (17/20)
发表于 2017-6-25 00:23:59 | 显示全部楼层   江西省萍乡市
为什么没看到第七课?
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)

签到天数: 1 天

发表于 2017-6-24 11:13:03 | 显示全部楼层   云南省临沧市
谢谢老师分享
回复 支持 反对

使用道具 举报

发表于 2017-6-22 12:34:18 | 显示全部楼层   浙江省嘉兴市
感谢老师的辛苦付出。。。谢谢!
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 3 天

发表于 2017-6-21 23:16:22 | 显示全部楼层   福建省漳州市
感谢分享,楼主辛苦了
回复 支持 反对

使用道具 举报

发表于 2017-6-21 00:05:06 | 显示全部楼层   山西省吕梁市
感谢分享学习了
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2017-6-20 18:06:04 | 显示全部楼层   浙江省温州市
一路向你学习中
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表