其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

正则表达式去查找成语

GG网络技术分享 2025-03-18 16:14 0


问题描述:


这是什么情况呀

网友观点:

要不你换下文件名字?

缺少docx包,需要安装

你没有安装模块

正则表达式---扫盲篇

这里开始对正则表达式做一些介绍。作为程序员或者说嵌入式软件开发人员,正则表达式还是很重要的。

开始,铺垫

因为是扫盲篇,所以就不上来就堆2概念了,想必堆得太多反而没有了兴趣;首先从一个小剧场开始:

首先,我们在桌面上创建一个文件,随便一个名字吧,1.txt。如下



然后打开文本,随便输入如下内容:




接下来,按下快捷键 "Ctrl + F",在输入行输入“一起”,当然你也可以输入其他的,如下



可以看到,上图中,“一起”,一共出现过2次,分别是第三行与第四行的行首前两个汉字。但是不管“一起”字符串位于哪里,文本中一共有2个“一起”字符串;所以,被匹配到2次。




2:晋升

但是我们绝对不可能仅仅满足于此,这种去两天计算机房就会了。现在需求变了!现在我们想要搜索 "位于行首的“一起”的字符串" 。

也就是说,字符串不仅要是"一起",而且还要位于行首,需要同时满足这两个条件的字符串才算满足条件。

那么,上图第4行中的一起字符串则不符合我们的要求,因为虽然第4行中包含"一起"字符串,但是它并不位于行首,而"第3行的一起"位于行首,所以,如果按照要求,只有第3行能被搜索到。

那么,我们应该怎样去搜索呢?

我们刚才的需求就是:"找到文本中位于行首的“一起"字符串"

让你搜索,你会怎么做?

没错,我们需要有一种方法,这种方法能够告诉计算机,直接查找"位于行首的”一起“字符串

这个时候,就需要依靠"正则表达式"了,"正则表达式"可以帮助我们实现这样的功能,但是,由于windows记事本并不支持"正则表达式",所以,我们无法通过"记事本"完成上述需求,我们只能安装其他程序,并且这个程序必须支持"正则表达式",此处,我们安装"notepad++",它是windows系统下比较常用的、流行的文本编辑器,

3 正式开始

使用"notepad++"打开示例中使用到的文本文件,如下图所示



同样,在"notepad++"中使用快捷键"ctrl + F",可以搜索hello字符串,如下图所示。





如上图所示,2个"一起"字符串都能被搜索到。

那么,回归到刚才的话题,我们怎样才能只搜索"位于行首的”一起“字符串"呢?方法如下

首先,点击下图中红线标注部分的按钮,这个按钮被选中后,"notepad++"才会以"正则表达式"模式工作。



然后在搜索框中输入"^一起" (符号"^"为键盘中数字键6对应的符号),即可达到我们的要求,即只查找位于行首的"一起"字符串。

查找结果如下图所示,只有位于行首的”一起“被匹配到了。





我们可以把上例中的"^一起"理解为"正则表达式",这个"正则表达式"想要表达的意思就是"位于行首的”一起“字符串"。

4:正则表达式的专业表述

到目前为止,我们已经初步地接触到了"正则表达式",但是我们还没有解释过"正则表示式"。现在,回过头来,再看看什么是正则表示式。

如下描述引用自百度百科

正则表达式,又称 规则表达式。
正则表达式的英语原文为:Regular Expression,常简写为regex、regexp或RE,正则表达式是计算机科学的一个概念。
正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

现在再来看这个专业的解释,是不是比较容易理解了?"正则表达式"又称"规则表达式",使用"正则表达式"可以让我们"表达出"某种规则,就像刚才使用到的"^一起",我们使用这个正则表达式,表达出了我们的想法,我们的想法就是搜索出位于行首的”一起“字符串,在正则表达式中,"^"就表示行首,所以,"^一起"就是表示位于行首的”一起“字符串,这就是我们想要表达的"规则",这就是"正则",我们利用这个正则表达式,检索出了"符合规则"的文本。

那么现在,你对"正则表达式"应该有了初步的概念了吧。

再啰嗦一遍,"正则"就是"规则","正则表达式"就是能够让我们表达出自己想法的规则,只要学会了这种规则,我们就能够表达自己的想法。

好了,"正则扫盲阶段"完成。

5:写在最后

之后还会介绍,脚本三剑客grep 、 awk 、 sed,就是用到的正则表达式。

标签:

提交需求或反馈

Demand feedback