笔记50:正则表达式入门宝典

引自:正则表达式是什么? - 知乎

中“龙吟九野”所写的一个回答,个人感觉看完之后如同醍醐灌顶,查了很多资料都没有这篇文章写的基础和通透,感觉是正则表达式扫盲好文,所以搬运一下,侵权删,感谢

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 x 10

当然,这样写的话……有可能人家是以为这样:

所以要用点特殊的符号来表示刚才的话。比如数字digital缩写为

\d

没错,是带着斜杆的d,没有了斜杆,软件就以为你是要找“d”的字母了。我们把斜杆称为:魔法·转义字符。

对应的,字母word可以表示为

\w

如果要表示任意字符呢?(任意字符就包括了任何你看得到的字符和看不到的字符)

那就用点号

.

↑这个点号有点小。仔细观察应该看得到。

那我想找到文本中的手机号码呢?怎么描述?

我就会说:数字,长度固定为11个的。

那么就是:

\d{11}

对,后面的花括号里面包裹的是次数。

看看效果?

那如果说是任意长度呢?那就用:

*

↑对,就是星号。

所以也可以试试任意长度的数字:

现在,知道怎么提取想要的知乎内容了吧?

没错,咱们就规定以“来自话题”为开头,然后匹配到下一行的任意内容(反正经过观察,这就是想要的标题行了)

如果要匹配新的行,要记得用上换行符号\n。

好了,开始:

来自话题:.*\n.*

↑表示以来自话题:为开头,然后匹配话题内容(任意字符都行)

再然后是换到新的一行,又匹配了任意的内容(这是标题)

效果是?

点击“全查”,即可选中所有同类型的文字。

然后复制,粘贴。

当然,现在面对的是小网页,文本不多,可能看不出什么优势。

但如果是一本小说那么长的报表呢?

想了解更多的正则表达式……就百度去吧。本咸鱼要洗白白了

~\(OvO)/~

↑这也是个正则表达式。


 

PS:之所以以Sublime Text作为文本编辑器示范是因为它的搜索功能支持正则表达式。

其他文本编辑器就看你的喜好了。反正我就喜欢用这个处理大量文字,故安利一波。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/133326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向萌新的数学建模入门指南

时间飞逝,我的大一建模生涯也告一段落。感谢建模路上帮助过我的学长和学姐们,滴水之恩当涌泉相报,写下这篇感想,希望可以给学弟学妹们一丝启发,也就完成我的想法了。拙劣的文笔,也不知道写些啥,…

ESP8266:物联网时代的连接神器

一、引言 在当今的物联网时代,智能设备与互联网的连接已经成为日常生活中不可或缺的一部分。而在这股浪潮中,ESP8266作为一个低成本、高效率的Wi-Fi芯片模块,扮演着举足轻重的角色。本文将为你揭示ESP8266的魅力,并探讨其在物联网…

Hadoop知识点全面总结

文章目录 什么是HadoopHadoop发行版介绍Hadoop版本演变历史Hadoop3.x的细节优化Hadoop三大核心组件介绍HDFS体系结构NameNode介绍总结 SecondaryNameNode介绍DataNode介绍DataNode总结 MapReduce介绍分布式计算介绍MapReduce原理剖析MapReduce之Map阶段MapReduce之Reduce阶段 实…

MySQL的event的使用方法

MySQL的event的使用方法 一、事件定时策略 1、查看event事件开启状态 SHOW VARIABLES LIKE event_scheduler;如图,Value值 ON:打开,OFF:关闭。 2、设置event事件打开 SET GLOBAL event_scheduler ON;如果MySQL重启了&#x…

【软件工程】金管局计算机岗位——软件测试的分类(⭐⭐⭐⭐)

软件工程 软件测试的分类从是否关心软件内部结构和具体实现的角度划(⭐⭐⭐⭐)从是否执行代码角度划分(⭐⭐)从软件开发的过程按阶段划分(⭐⭐⭐⭐) 软件测试的分类 考点导读: 软件测试是软件工…

C#通过FTP与异构系统实现业务接口

using System; using System.Data; using System.Configuration; using System.Web; using System.Net; using System.IO; using System.Text; using System.Configuration; /// <summary> /// FtpWeb 的摘要说明 /// .net对FTP操作类 /// </summary> namespace…

vSLAM中IMU预积分的作用--以惯性导航的角度分析

作为一个学过一点惯导的工程师&#xff0c;在初次接触视觉slam方向时&#xff0c;最感兴趣的就是IMU预积分了。但为什么要用这个预积分&#xff0c;在看了很多材料和书后&#xff0c;还是感觉模模糊糊&#xff0c;云里雾里。 在接触了vSLAM的更多内容后&#xff0c;站在历史研究…

极简web集成 rtsp/rtmp免插件播放,web rtsp/rtmp推流方案

一直有客户要求在Web上集成rtsp/rtmp播放和web推流功能,测试对比各种流服务平台和播放器后&#xff0c;发现在github的ovsyunlive不管是延时&#xff0c;便捷和集成易用性都是非常好&#xff0c;还是看效果吧&#xff0c;直接下载测试如下&#xff1a; github 搜ovsyunlive下载…

STM32 IAP应用开发--bootloader升级程序

STM32 IAP应用开发--bootloader升级程序 Chapter1 STM32 IAP应用开发——通过串口/RS485实现固件升级&#xff08;方式2&#xff09;前言什么是IAP&#xff1f;什么是BootLoader&#xff1f; 方案介绍&#xff1a;1&#xff09;bootloader部分&#xff1a;2&#xff09;APP部分…

Health Kit申请验证有问题?解决方案全解析

在接入Health Kit的过程中&#xff0c;应用上线前需要完成申请验证环节&#xff0c;获得正式的运动健康权限。 我们贴心整理了申请验证被驳回的高频问题&#xff0c;您可以在申请前阅读以下内容&#xff0c;避免在您的申请材料中出现下述问题影响审核通过的进度哦&#xff01;…

纷享销客获评中小企业数字化转型优质服务商

近日&#xff0c;纷享销客成功入选长沙市工信局评定的【中小企业数字化转型优质服务商】&#xff0c;专业服务实力得到官方认可&#xff01; 今年6月&#xff0c;财政部、工信部联合印发《关于开展中小企业数字化转型城市试点工作的通知》&#xff0c;长沙市成功入选首批中小企…

程序员笔记本电脑选 windows 还是 MAC

计算机选择是每个进入 IT 行业同学的第一个重要选择&#xff0c;那么你是怎么选择的呢&#xff1f; 选择操作系统&#xff08;Windows还是macOS&#xff09;取决于程序员的需求、偏好和工作流程。每个操作系统都有其优点和缺点&#xff0c;下面将分别讨论它们&#xff0c;以帮助…

RK3568驱动指南|第七篇 设备树-第61章 实例分析:pinctrl

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

MySQL-sql的优化

表的设计优化索引优化SQL语句优化主从复制、读写分离分库分表 表的设计优化(参考阿里开发手册) 比如设置合适的数值(tinyint int bigint)&#xff0c;要根据实际情况选择 比如设置合适的字符串类型(char和varchar) char定长效率高&#xff0c;varchar可变长度&#xff0c;效…

chatgpt相关问题解答

1. openAI的chatgpt的收费方式有哪几种&#xff1f; 根据OpenAI官方的信息&#xff0c;ChatGPT的收费方式包括两种&#xff1a; 1.订阅计划&#xff08;Subscription Plan&#xff09;&#xff1a;OpenAI提供了ChatGPT Plus订阅计划&#xff0c;每月收费20美元。订阅计划的用…

(论文阅读14/100)End-to-end people detection in crowded scenes

文献阅读笔记 简介 题目 End-to-end people detection in crowded scenes 作者 Russell Stewart, Mykhaylo Andriluka 原文链接 https://arxiv.org/pdf/1506.04878.pdf 关键词 Null 研究问题 当前的人员检测器要么以滑动窗口的方式扫描图像&#xff0c;要么对一组离…

Redis注解式开发结合SSM项目使用与Quartz框架介绍以及击穿、穿透、雪崩问题解决

目录 一、SSM项目整合Redis 1.1 导入pom依赖 1.2 spring-redis.xml 1.3 spring上下文配置 二、Redis注解式开发 2.1 Cacheable 注解 2.2 自定义策略 2.3 CachePut 注解 三、Redis中缓冲、击穿、穿透、雪崩问题解决 3.1 缓冲问题 —— Quartz 框架 3.2 常见的三种问题…

Git查询某次提交属于哪个分支

在Android studio&#xff08;JetBrains系列也类似&#xff09;左下角&#xff0c;可以看到所有提交信息。 选中某一次提交信息&#xff0c;右键&#xff0c;选择“Copy Revision Number”&#xff0c;如下图&#xff1a; 打开Android studio的Terminal&#xff0c;输入git b…

【广州华锐互动】3D全景虚拟旅游在文旅行业的应用场景

随着科技的不断发展&#xff0c;3D全景虚拟旅游正在成为一种新兴的旅游体验方式&#xff0c;它可以帮助旅游者更加深入地了解旅游信息&#xff0c;提升旅游体验。下面我们将详细介绍3D全景虚拟旅游可以应用于哪些场景。 一、旅游规划 3D全景虚拟旅游可以帮助旅游者更加直观地进…

SQL数据库使用方法

首先打开sqlite3.exe所在文件夹&#xff0c;如图1 图1 在文件夹路径中将路径改为cmd&#xff0c;如图2所示 图2 在弹出的cmd窗口中输入如图3所示。 图3 sqlite3 tichiceliang.db 其中tichiceliang是数据库名称。然后按enter&#xff0c;再在cmd中输入.table,可以看到文件夹目…