查找网站后台的软件,江苏企业网站建设价格,小雨wordpress,苏州网络营销网站建设平台正则表达式概述 正则表达式又称正规表达式#xff0c;常规表达式。在代码中常简写为regex#xff0c;regexp 或RE.正则表达式 是使用单个字符串来描述#xff0c;匹配一系列符合某个句法规则的字符串#xff0c;简单来说#xff0c;是一种匹配字符串 的方法#xff0c;通…正则表达式概述 正则表达式又称正规表达式常规表达式。在代码中常简写为regexregexp 或RE.正则表达式 是使用单个字符串来描述匹配一系列符合某个句法规则的字符串简单来说是一种匹配字符串 的方法通过一些特殊符号实现快速查找删除、替换某个特定字符串。 正则表达式是由普通字符与元字符组成的文字模式。模式用于描述在搜索文本时要匹配的一 个或多个字符串正则表达式作为一个模板将某个字符模式与所搜索的字符串进行匹配。其中 普通字符包括大小写字母数字标点符号及一些其他符号元字符则是指那些在正则表达式中 具有特殊意义的专用字符可以用来规定其前导字符即位于元字符前面的字符在目标对象中 的出现模式. 基础正则表达式 正则表达式的字符串表达方法根据不同的严谨程度与功能分为基本正则表达式与扩展正则表达 式基础正则表达式是常用的正则表达式的最基础的部分在Linux系统中常见的文件处理工具中 grep 与sed支持基础正则表达式而egrep与awk支持扩展正则表达式。掌握基础正则表达式的使用 方法首先必须了解基本正则表达式所包含的元字符的含义下面通过grep命令以举例的方式逐个介绍。
1.基础正则表达式示例
下面的操作需要提前准备一个名为test.txt的测试文件文件具体内容如下所示. 1查找特定字符 查找特定字符非常简单如执行以下命令即可从test.txt文件中查找出特定字符“the所在位置. 其中“-n”表示显示行号“-i”表示不区分大小写命令执行后符合匹配标准的字符字体颜色 会变为红色本章中全部通过加粗显示代替 [rootlgcllc ~]# grep -n the test.txt [rootlgcllc ~]# grep -in the test.txt 若反向选择如查找不包含“the”字符的行则需要通过grep命令的‘-vn”选项实现. [rootlgcllc ~]# grep -vn the test.txt 2利用中括号“[ ]”来查找集合字符 想要查找“shirt”与“short”这两个字符串时可以发现这两个字符串均包含“sh与rt.此 时执行以下命令即可同时查找到“shirt与“short”这两个字符串.“I”中无论有几个字符都仅代表一个字符也就是说“[io]”表示匹配i”或者“o”. [rootlgcllc ~]# grep -n sh[io]rt test.txt 若要查找包含重复单个字符‘oo”时只需要执行以下命令即可。 [rootlgcllc ~]# grep -n oo test.txt 若查找‘oo”前面不是‘w”的字符串只需要通过集合字符的反向选择“[]”来实现该目的 如执行“grep -n“[^w]ootest.txt”命令表示在test.txt文本中查找“oo”前面不是“w”的字符串。 [rootlgcllc ~]# grep -n [^w]oo test.txt 3查找行首“^” 与行尾字符“$”
查询the字符串时出现了很多包含“the”的行如果想要查询以“the”字符串为行首的行则可以通过 ^元字符来实现。 [rootlgcllc ~]# grep -n ^the test.txt 查询以小写字母开头的行可以通过“[a-z]”规则来过滤查询大写字母开头的行则使用“[A-Z]” 规则若查询不以字母开头的行则使用“[^a-zA-Z]”规则。 [rootlgcllc ~]# grep -n ^the test.txt [rootlgcllc ~]# grep -n ^[A-Z] test.txt [rootlgcllc ~]# grep -n ^[^a-zA-Z] test.txt 当查询空白行时.执行“grep-n““stest.txt”命令即可。 [rootlgcllc ~]# grep -n ^$ test.txt 4查找任意一个字符”.”与重复字符”*” 在正则表达式中小数点.也是一个元字符代表任意一个字符。例如执行以下 命令就可以查找“w??d”的字符串即共有四个字符以w开头d结尾. [rootlgcllc ~]# grep -n w..d test.txt 若查询包含至少两个o以上的字符串可执行以下语句 [rootlgcllc ~]# grep -n ooo* test.txt 5查找连续字符范围“{ }” 在上面的示例中我们使用“.”与“*”来设定零个到无限多个重复的字符如果想要限制一 个范围内的重复的字符串该如何实现呢例如查找三到五个o的连续字符这个时候就需要使用基础正则表达式中的限定范围的字符“{ }”.因为“{ }”在Shell中具有特殊意义所以在使用“{}” 字符时需要利用转义字符“\”将“{ }”字符转换成普通字符。“{}”字符的使用方法如下所示。 查询两个o的字符。 [rootlgcllc ~]# grep -n o\{2\} test.txt 查询以w开头以d结尾中间包含25个o的字符串。 [rootlgcllc ~]# grep -n wo\{2,5\}d test.txt 查询以w开头以d结尾中间包含2以上o的字符串。 [rootlgcllc ~]# grep -n wo\{2,\}d test.txt 2.元字符总结 文本处理器 在Linux/UNX系统中包含很多种文本处理器或文本编辑器其中包括我们之前学习过的VM编辑器 与grep等。而 grep,sed,awk 更是shell编程中经常用到的文本处理工具被称之为Shell编程三剑客。
sed工具 通常情况下调用sed命令有两种格式如下所示其中“参数”是指操作的目标文件当存在 多个操作对象时用文件之间用逗号””分隔而scriptfile表示脚本文件需要用“-f”选项指定. 当脚本文件出现在目标文件之前时表示通过指定的脚本文件来处理输入的目标文件。 awk工具 通常情况下awk所使用的命令格式如下所示其中单引号加上大括号“{ }”用于设置对数据 进行的处理动作。awk可以直接处理目标文件也可以通过“-f ”读取脚本对目标文件进行处理。 默认情况下字段的分隔符为空格或者tab键。awk执行结果可以通过 print的功能将字段数 据打印显示。在使用awk命令的过程中可以使用逻辑操作符“”表示“与”“II”表示“或” “”表示“非”还可以进行简单的数学运算如一、*./.%、“分别表示加、减、乘、除、取余和乘方。