正则表达式元字符扩展正则字符簇

Posted 木子小世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式元字符扩展正则字符簇相关的知识,希望对你有一定的参考价值。

正则表达式

由普通字符和元字符( Metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。

元字符表达的是不同于字面本身的含义。元字符通常由各种执行模式匹配操作的程序(如vi、grep、sed、 awk、 python)来解析,在最简单的情况下,一个正则表达式看上去就是一个普通的查找模式。例如,正则表达式“testing"中没有包含任何元字符,它可以匹配“testing"  和“testing123” 等字符串,但不能匹配“Testing”。

常用元字符

元字符

描述

举例

^

匹配行首

^love

$

匹配行尾

love$

.

点,匹配单个字符

l.ve匹配l开始、一个任意字符、ve结尾

\\

将下一个字符标记为特殊字符

love\\.

*

匹配前导符任意多次

"abc*" 能匹配 ab abc abcd abcde abcdef

[xyz]

字符集合,匹配所包含的任意一个字符

[lL]ove

[^xyz]

匹配未包含的任意字符


\\< \\>

词首词尾定义符

\\<the 能匹配for the ok 不能匹配 other

x\\m,n\\

字符x出现m到n次

也可 x\\m\\ 出现m次 x\\m,\\ 出现m次以上

扩展正则表达式元字符

+

匹配1或多个前导字符

"[a-z]+ove"

loove looove love iloveyou

匹配0或1个前导字符

lo?ve  匹配出 love lve

a|b

匹配a 或b


( )

匹配括号中的全部字符


在程序中,要判断数输入的电话号码地址等,用普通的字面字符是不够的,需要使用相应的字符模式的方法来描述,就是字符簇。更多情况下,可能要匹配一个单词或一组数字,跟在字符或字符簇后面的花括号()用来确定前面的内容重复出现的次数。

几个常用的的字符簇

.*

所有行

^$

空行

^[a-zA-Z_]$

所有的字母和下划线

^[[:alpha:]]3$

所有的三个字母的单词

^a$

匹配字母a

^a2,$

包含多于两个a的字符串

^[A-Z]..$

开头一个大写,最后2个任意字符

^[A-Z][a-z ]*3[0-5]

一个大写开头,0到多个小写,3,最后是0-5的一个数字

[a-z]*\\.

0到多个小写字母,最后一个点

^ *[A-Z][a-z][a-z]$

0到多个空格开头,一个大写,一个小写,再一个小写结尾

^[A-Za-z]*[^,][A-Za-z]*$

0到多个字母开头,非逗号,0到多个英文结尾

5223\\.

5两次2三次和一个点

^[ \\t]*#

有0到多个,空格或者tab开头的行,的注释行

:1,$ s/\\(square\\) and \\(fair\\)/\\2 and \\1/ 

换个位置

以上是关于正则表达式元字符扩展正则字符簇的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式以啥结尾

正则表达式如何匹配空值?

Shell 学习:正则表达式

Shell 学习:正则表达式

Shell 学习:正则表达式

正则表达式如何匹配空值?