加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 23:00:03 所属栏目:百科 来源:网络整理
导读:正则表达式是一类字符书写的模式,其中许多字符不表示其字符表面意义,而表示控制或者通配等功能。 元字符的作用是不表示其字面意义,用于表示额外功能的描述 正则表达式的元字符 字符匹配包括以下: . :匹配任意单个字符 [] :匹配指定范围内的任意单个字符

正则表达式是一类字符书写的模式,其中许多字符不表示其字符表面意义,而表示控制或者通配等功能。

元字符的作用是不表示其字面意义,用于表示额外功能的描述

正则表达式的元字符

字符匹配包括以下:

. :匹配任意单个字符

[] :匹配指定范围内的任意单个字符。 常用的有以下几个:

[[:alnum:]] :文字,数字字符 [[:alpha:]] :字母字符

[[:lower:]] :小写字符 [[:upper:]] :大写字符

[[:digit:]] :小数 [[:xdigit:]] :十六进制数字

[[:punct:]] :标点符号 [[:blank:]] :制表符和空格

[[:space:]] :空格 [[:cntrl:]] :所有控制符

[[:print:]] :所有可打印的字符 [[:graph:]] :除空格外的所有可打印字符

反义:[^] 也就是取反

次数匹配的元字符:实现指定其前面的字符所能够出现的次数

* : c重复0次或者更多次 + :重复一次或者更多次

? :重复0次或者一次{n} :重复n次

{n,} :重复n次或者多次 {m,n} : 重复不少于n次,不多于m次

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

例:找出words中所有以大写字母开头,以小写t结尾的行

wKiom1PCgVjjZyvyAABaA_1nrQM778.jpg

正则表达式的子表达式

wKioL1PCgp_AubL0AACLOUMtGLQ251.jpg

  正则表达式“(or){2,}“ 匹配所有or重复两次或者更多次的行,如果去掉or两边的括号,那么这条正则表达式匹配的是”字母o后边紧跟两个或者更多字母r的行。

正则表达式的位置锚

 ^:行首锚定,写在模式的最左侧

 $:行尾锚定:出现模式的最右侧

 ^$:表示空白行

 单词和字符串的区别:不包含特殊字符的连续字符组成的串叫做单词:

 &;:词首,出现于单词的左侧

 &;:词尾,出现于单词右侧 

逆向引用

  在子表达式(分组)中捕获的内容可以在正则表达式中的其他地方再次使用,可以使用反线“”加上子表达式的编号来之代该分组所匹配到的内容。

 (&;.*&;.?()*1

  此正则表达式表达的是在匹配到的某个单词出现后,紧跟0个或者一个标点符号以及任意个空格之后再次出现这个单词的行。

解释

(&;.*&; :匹配任意长度的单词。

 .? :匹配0个或者多个标点符号。(由于在句点之前匹配的是单词,因此句点“.”在这里只能匹配标点。

( )* :匹配0个或者多个空格

 1 :指代第一个子表达式匹配到的模式

正则表达式的字符转译

由于各个符号在正则表达式中都不表达原来的含义。所以在正则表达式中可以使用反斜线加上元字符表达原来的含义。

“\”:取消所有元字符的特殊含义。

常用命令选项:

-v: 反向选取

-o: 仅显示匹配的字串,而非字串所在的行

-i:ignore-case,忽略字符大小写

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读