正则表达式元字符扩展正则字符簇
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/ | 换个位置 |
以上是关于正则表达式元字符扩展正则字符簇的主要内容,如果未能解决你的问题,请参考以下文章