排行榜 统计
  • 文章总数:649 篇
  • 评论总数:10704 条
  • 分类总数:4 个
  • 最后更新:4月4日
none

超详细的正则表达式(上:正则表达式语法)

本文阅读 4 分钟
首页 正文
本文最后更新于2022年11月09日,已超过907天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

您阅读这篇文章共耗时:

  正则表达式定义正则表达式语法,又称规则表达式。(英语: ,在代码中常简写为regex、regexp或RE),正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。一句话说就是匹配有规律的东西

  一:正则符号分类符号

  基础正则

  “^”,“$”,“.”,“*”,“[]”

  扩展正则

  “+”,“|”,“()”,“{}”,“?”

  一些语言的的特殊扩展(比如perl,这部分就不讲了)

  二:正则表达式和通配符的区别

  分类用途

  正则表达式( )

  grep,sed,swk三种命令,以及一些高级语言,是用来在各种方面进行过滤的

  通配符( )

  用来匹配文件名的(比如*),大部分命令都支持

  当然正则表达式语法,这两种在某些方面重合度很高,不用太过在意区别,正则表达式功能更强大。

  三:基础正则

  一下所有演示都会以这个名叫test.txt文件作为基础(随便写的乱码,更能体现出正则表达式)

  ^... 以“...”开头的行,例如^as,则表示以as开头的行

  执行grep “^as”test.txt就可以得到以下结果

  2. ...$ 以“...”结尾的行,例如 ds$

  执行grep “ds$”test.txt得到以下结果

  3. ^$ 开头结尾放一起,表示空行

  例如grep -n '^$' test.txt(grep的-n表示显示行号)

  4. “.”表示任意一个字符,

  例如grep -n '.' test.txt (表示空行外的所有行)

  5. “*”表示前一个字符连续出现多次, 可以是0次。

  例如grep -n '3*' test.txt(找出含有至少0次3的行)

  这时有人就有疑惑了,只有第3行有两个3,为什么所有行都显示了?

  因为所有行其它行都有0个3,所以所有行都显示了。

  要想找出至少有一个3的行,应该这么做

  6. “.*”表示所有字符(包括空行)

  例如grep -n '.*' test.txt可以显示出文件所有行

  7. “[]”, 表示匹配中括号中的任意一个字符,注意, []中的所有字符都会被当成字符来匹配,比如.,|

  例如:grep -n '[0-9]' test.txt,选出了包含数字的行

  ——————————————————————————————————————

  四:扩展正则(扩展正则对于grep需要用egrep或grep -E)

  “+”前一个字符连续出现了至少一次。

  例如grep -En '3+' test.txt

  2. "|" 表示或者

  例如 grep -En 'asd | fas' 就表示选出包含asd或fas的行

  3. “()”被括起来的内容相当于一个整体

  比如grep -En 'as(2|d)' test.txt

  4. “{}” 表示连续出现,例如 ‘a{n, m}’,表示a连续出现至少n次,至多m次

  例如grep -En '[0-9]{2, 5}' test.txt

  5. “?”表示连续出现0次或1次

  例如grep -En '1?23' test.txt

  最后,我创建了一个商业级C++技术群,里面有各种C++资料。

  我也会在里面解决各种问题,从开发到部署。

  也包括正则表达式

  群号是

本文来自投稿,不代表本站立场,如若转载,请注明出处:http://xuan.ddwoo.top/index.php/archives/163/
-- 展开阅读全文 --
单向循环链表-《数据结构》自学方法指导
« 上一篇 11-09
windows编程入门-六星云课堂:零基础学C/C++编程?看看下面这几个步骤
下一篇 » 11-09
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

发表评论

本站已加入互联网信息服务许可,请规范您的言行哦~

成为第一个评论的人

作者信息

热门文章

珍惜时间哦~

今日一言

- -
加载中...
换一句

标签TAG

热评文章