ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

正则表达式

2021-08-24 21:33:23  阅读:202  来源: 互联网

标签:匹配 行号 正则表达式 空格 一个 多出


虽然说正则表达式(regex)对我们oier来说用的比较少,但其功能之强大、实用性之广,可谓吊打C++的string和char,秒杀Windows的通配符

 

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

 

听起来挺懵对不?

我们来看一个实例:

 

假设你在偷窥一个人的备忘录(

这个备忘录很长,大概也就几万字吧

你想找出里面的所有电话号码和电子邮箱地址,咋整?

 

目测法广搜?

其实很简单,你只需要打开这个网页

把你要查找的范围复制粘贴进"在此输入待匹配文本"一栏,

然后在"在此输入正则表达式"一栏输入如下代码:

((\b[\w.%+-]+@[\w.-]+\.[a-zA-Z]{2,6}\b))|(((\d{3,4})|\d{3,4}-|s)?\d{7,14})

然后点测试匹配,查询结果就有啦~

 

嗯 很简单吧?

我猜你一定能看懂

 

 

……好吧

 

看不懂没关系,先花几分钟看看这篇文章,很轻松就能入门

 

 

 

其实掌握了这些,应付日常生活中的搜索基本就够了

如果要搞网页开发,估计还得学贪婪量词、惰性量词、正则回溯、捕获和非捕获组等神奇的东西……

 

 

下面看一个栗子

 

戳我戳我

 

这是我之前写过的一篇博客,你尝试复制代码到你的开发环境

 

 

 

 

 

 

 

 

……

 

是不是大跌眼镜?

 

 

 

 

 

竟然把行号也复制过来了???

 

(What a surprise!!!)

 

其实这也是我一开始没想到的,偶然间才发现了这个问题

(所以就写了这篇blog……)

 

那怎么解决类似的问题呢?

 

 

wait

你不是刚学了正则表达式吗?

干嘛不试试?

 

我们来分析一下:

 

对1~9行,行号前多出了两个空格,行号后多出了一个空格,可以这样搜索:

  [1-9] 

注意,[1-9]前有两个空格,后有一个空格,不能多不能少!!

[]是中括号表达式,表示区间

[1-9]表示的是1~9之间的任意一个数字。

 

对10~99行,行号前多出两个空格,行号后多出一个空格,同时末尾数字出现了0,可以这样搜索:

 [1-9][0-9] 

[1-9]前、[0-9]后各有一个空格

 

对100~最后一行,行号前没有空格,行号后多出一个空格,可以这样搜索:

[1-9][0-9][0-9] 

开头没有空格,末尾一个空格

 

 

这样,每种可能出现的情况就被我们轻松解决啦

 

但是还有一个问题

 

你再回这个页面看看

 

一次似乎只能输入上面的一行表达式

 

但是我们想要同时搜出所有结果,怎么办?

 

很简单:

  [1-9] | [1-9][0-9] |[1-9][0-9][0-9] 

我们可以用    |    这个符号将各表达式连起来(注意,|前后的空格数量应和前面推导出来的相符!)

| 指明两项之间的一个选择,有点类似C++中的||

 

这样,我们把代码复制粘贴进待匹配文本一栏,点击"替换"即可(替换为空,就相当于删除)

 

 

把替换结果复制一下就完成啦~

 

 

至此,正则表达式的教程结束

 

感谢你的耐心阅读~

 

标签:匹配,行号,正则表达式,空格,一个,多出
来源: https://www.cnblogs.com/void-null/p/15182565.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有