笔记50:正则表达式入门宝典-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
中“龙吟九野”所写的一个回答个人感觉看完之后如同醍醐灌顶查了很多资料都没有这篇文章写的基础和通透感觉是正则表达式扫盲好文所以搬运一下侵权删感谢
a
作者龙吟九野
链接https://www.zhihu.com/question/19676915/answer/171365948
来源知乎
a
a
a
a
a
文本乃天下之大宗。自网络出现以来文本信息指数爆炸式增长乃至于各种文字泛滥于天下自此江湖皆是修文之人。如果你恰好也是其中之一那可以来学习学习……怎么处理一些文字信息。不是用Word排版也不是拿Excel统计单词。而是——找信息。
想象一下假如你不知道网页是用什么鸟HTML写出来的。你打开了知乎页面在你的面前都是文字、小图片
然后老板过来哦你也看知乎小鱼啊把今天推荐的这些话题、对应的标题都复制下来做个目录你会怎么办当然是骂娘啦。都不会程序什么的只好一个个复制、粘贴咯。别急着骂娘。假设你不知道document.getElementByXX这些鸟玩意儿那我们就把这些当做文本来处理。全选页面复制粘贴到我们的编辑器Sublime Text中。
仔细观察一下这些文本是不是有规律
好了课程开始了。
1但凡文字是有规律的我们都会这么描述我要一段都是字母的。我要一段都是数字的。
2或者你的邮箱会是被这么描述的文字或者数字可出现多次@某个网站.com
看吧……其实你本来就会“正则表达式”只是你不说而已。
正则表达式就是名字看起来比较高大上其实就是……我要啥啥啥类型的文本你给我瞅瞅有没有呗
a
a
a
a
a
比如说我要10个数字的。
你就跟电脑说
当然这样写的话……有可能人家是以为这样
所以要用点特殊的符号来表示刚才的话。比如数字digital缩写为
\d
没错是带着斜杆的d没有了斜杆软件就以为你是要找“d”的字母了。我们把斜杆称为魔法·转义字符。
对应的字母word可以表示为
\w
如果要表示任意字符呢任意字符就包括了任何你看得到的字符和看不到的字符
那就用点号
.
↑这个点号有点小。仔细观察应该看得到。
那我想找到文本中的手机号码呢怎么描述
我就会说数字长度固定为11个的。
那么就是
\d{11}
对后面的花括号里面包裹的是次数。
看看效果
那如果说是任意长度呢那就用
*
↑对就是星号。
所以也可以试试任意长度的数字
现在知道怎么提取想要的知乎内容了吧
没错咱们就规定以“来自话题”为开头然后匹配到下一行的任意内容反正经过观察这就是想要的标题行了
如果要匹配新的行要记得用上换行符号\n。
好了开始
来自话题:.*\n.*
↑表示以来自话题为开头然后匹配话题内容任意字符都行
再然后是换到新的一行又匹配了任意的内容这是标题
效果是
点击“全查”即可选中所有同类型的文字。
然后复制粘贴。
当然现在面对的是小网页文本不多可能看不出什么优势。
但如果是一本小说那么长的报表呢
想了解更多的正则表达式……就百度去吧。本咸鱼要洗白白了
~\(OvO)/~
↑这也是个正则表达式。
PS:之所以以Sublime Text作为文本编辑器示范是因为它的搜索功能支持正则表达式。
其他文本编辑器就看你的喜好了。反正我就喜欢用这个处理大量文字故安利一波。