正则表达式(REGular EXPression),正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。只有掌握了正则表达式,才能全面地掌握 Linux 下的常用文本工具(例如:grep、egrep、GUN sed、 Awk 等) 的用法。

正则表达式可以分为基本正则表达式 (Basic REGEXP) 、扩展正则表达式 (EXtended REGEXP)和Perl 正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs) 三种。目前,我们只使用前两种正则表达式来完成日常的linux下的命令操作。

Linux中,基本正则表达式和扩展正则表达式都有相同的匹配分类:1、字符匹配;2、次数匹配;3、位置锚定;4、分组锚定。扩展正则表达式还支持【或者锚定】。

正则表达式:REGular, EXPression, REGEXP

元字符:

.:匹配任意单个字符

[]:匹配指定范围内的任意单个字符

[^]:匹配指定范围外的任意单个字符

字符集合:[:digit:] [:lower:] [:upper:] [:punct:] [:space:] [:alpha:] [:alnum:]

匹配次数(工作在贪婪模式下,尽可能长的去匹配):

*:匹配其前面的字符任意次,包括0次

.*:任意长度的任意字符

?:匹配其前面的字符1次或0次

\{m,n\}:匹配其前面的字符,至少m次,至多n次

位置锚定:

^:锚定必须出现的行首,此字符串后边的任意内容必须出现在行首(放在词前)

$:锚定行尾,此字符串前边的任意内容必须出现在行尾(放在词尾)

^$:空白行

\<或\b:其后边的字符必须作为单词首部出现

\>或\b:其前边的字符必须作为单词尾部出现

分组:

\(\)

\(ab\)*:ab可以出现任意次

后向引用

\1:第一个左括号以及与之对应的右括号所包括的所有内容

\2:

\3:

或者:只用于扩展正则表达式

a|b:匹配 a或者b, a or b

C|cat:匹配 C或者cat

grep:使用基本正则表达式定义的模式来过滤文本的命令:  使用格式为:grep  command  FILE

-i:不区分大小写

-v:反向查找,显示没有被模式匹配到的行

-o:只显示被匹配到的字符串

--color:将匹配结果用高亮颜色显示出来

-E:使用扩展正则表达式

-A #:当某一行被指定后,显示其后#行

-B #:当某一行被指定后,显示其前#行

-C #:当某一行被指定后,显示其前,后#行

正则表达式不仅仅在我们查看文本中匹配内容时用到,它常常用于shell脚本的编程及其他文本编辑器中替换指定的字符串为我们需要的字符串,这些就需要sed等其他的命令来进行,正则表达式可以提高我们的脚本编程速度。

转载于:https://blog.51cto.com/earljoyce/1148602

初步了解并使用正则表达式 (REGular EXPression)相关推荐

  1. java正则表达式及api_JAVA常用API:正则表达式regular expression

    一.正则表达式的概念 正则表达式,regular expression,在代码中通常简写成regex 正则表达式是一个字符串,使用每单个字符串来描述.定义匹配规则,匹配一系列符合某个语法规则的字符串. ...

  2. 正则表达式 匹配点号_Python入门:正则表达式(Regular Expression)

    正则表达式用来干嘛 正则表达式是用来匹配文本的一种语言.别被语言吓到,正则表达式其实非常简单,可能你花2个小时就能用起来,但是你一定会觉得非常强大,像非常厉害的数据爬取,网页爬虫,都要用到正则表达式! ...

  3. oracle的正则表达式(regular expression)简单介绍

    目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境. Oracle 10g正则表达式提高了SQL灵活性.有效的解 ...

  4. 正则表达式Regular Expression

    <编译原理>第三章习题 我们的教材是那本经典的"龙书":<Compiler: Principles, Techniques, and Tools> 灰常灰常 ...

  5. 正则表达式(regular expression)————以Qt为例

    文章目录 1 应用 2 简介 2.1 组成 2.2 特殊字符 2.2.1 匹配多个字符串 2.2.2 替换字符串 2.2.3 统计字符出现次数 2.3 Qt中使用 3 regexp结构集合 3.1 表 ...

  6. 通配符(WildCard)与正则表达式(Regular Expression)

    1.通配符(wildcard)就是万用牌的意思 * 表示匹配任意长度的任意字符 ? 表示匹配一个任意字符 [-]则表示匹配括号中列出的字符中的任意一个 [!..]表示不匹配括号中列出的字符中的任意一个 ...

  7. php中ip地址的正则表达式,PHP_IP地址正则表达式匹配方法,正则表达式(Regular Expression, - phpStudy...

    IP地址正则表达式匹配方法 正则表达式(Regular Expression,在代码中常简写为regex.regexp或RE)是计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个 ...

  8. Regular Expression:C++正则表达式库(RE库regex)

    正则表达式(Regular Expression)是一种描述字符序列的方法,是处理字符序列的一种强大的计算工具!(字符串的匹配.查找.替换) 1.ECMAScript :ECMA-262规范: ECM ...

  9. python 正则表达式(Regular Expression)基础学习笔记

    python 正则表达式(Regular Expression) 正则表达式基础 search():只返回第一个匹配的字符串 findall():将搜寻结果以列表方式返回 import re # 导入 ...

最新文章

  1. 数据丢失引起宕机怎么办?
  2. 我的网页设计(腾讯网页面制作编写)
  3. 面试官:CountDownLatch 与 CyclicBarrier 的使用场景?有什么区别?
  4. Xamarin iOS教程之使用按钮接接收用户输入
  5. networking常用命令
  6. HDU4635 Strongly connected
  7. Xshell远程连接Linux失败
  8. ETL转换工具 kettle——spoon 安装 使用
  9. 华为云IoT体验:基于IoT平台构建智慧路灯应用
  10. 设置FlashBuilder4.7打开时选择项目(显示选择项目对话框)
  11. Gradle入门教程学习笔记
  12. mysql distance()_mysql距离函数st_distance
  13. Multisim调幅和解调电路仿真实验
  14. 【Matlab】求解微分方程{上}(通解和特解)
  15. 一个故事讲完https
  16. 高精度在线计时器(秒表)
  17. python unpacking_Python函数调用时unpacking参数特性
  18. win7原版镜像_AMD平台B450主板安装WIN7教程
  19. Linux查网卡驱动版本,centos查看系统版本,网卡驱动和版本信息。
  20. 中信银行MySQL面试_中信银行校园招聘面试经验|面试问题(共202条)- 职业圈

热门文章

  1. oracle查询中表的连接顺序 手工指定
  2. yii框架下使用redis
  3. spring boot+mybatis整合
  4. Day20:绑定方法与非绑定办法、多态和多态性
  5. Longest Substring with At Most Two Distinct
  6. 【M17】考虑使用缓式评估
  7. 中国企业云计算应用现状及需求
  8. mybatis基础(一)
  9. BZOJ 2301: [HAOI2011]Problem b
  10. 由java的八个基本数据类型说开去