Perl正则表达式元字符

正则表达式元字符(metacharacter)是不代表自身原有含义的字符。它们拥有

以某种方式控制搜索模式的特殊能力(例如只在行首或行尾搜索模式,或只在以

大写或小写字母开头的行上搜索模式)。如果在它们前面加上反斜杠(\),这

些元字符就会失去其特殊含义。例如,元字符点号(.)代表任何单个字符,但

如果在前面加上反斜杠,它就会退化为一个普通的点号或句号。

如果在元字符前面出现了反斜杠,这些反斜杠就会关闭元字符的特殊含义;但如

果在正则表达式中的其他数字或字母之前出现反斜杠的话,这些反斜杠则会拥有

其他的含义。Perl 为一些元字符提供了简化形式,又称元符号(metasymbol),

它们专门用于表示字符。例如,[0-9] 表示范围从0到9 的数字,\d 也能表示相

同的含义。只不过[0-9] 用到了方括号元字符,而\d 则使用了元符号。

    | 元字符               | 匹配项                                                   |
    |----------------------+----------------------------------------------------------|
    | 字符类:单字符与数字 |                                                          |
    |----------------------+----------------------------------------------------------|
    | .                    | 匹配除换行符外的任意字符                                 |
    | [a-z0-9]             | 匹配集合中任意单个字符                                   |
    | [^a-z0-9]            | 匹配不在集合中的任意单个字符                             |
    | \d                   | 匹配单个数字                                             |
    | \D                   | 匹配非数字字符,等效于[^0-9]                             |
    | \w                   | 匹配数字型(字)字符                                     |
    | \W                   | 匹配非数字型(非字)字符                                 |
    |----------------------+----------------------------------------------------------|
    | 字符类:空白字符     |                                                          |
    |----------------------+----------------------------------------------------------|
    | \s                   | 匹配空白字符,如空格,制表符和换行符                     |
    | \S                   | 匹配非空白字符                                           |
    | \n                   | 匹配换行符                                               |
    | \r                   | 匹配回车符                                               |
    | \t                   | 匹配制表符                                               |
    | \f                   | 匹配进纸符                                               |
    | \b                   | 匹配退格符                                               |
    | \0                   | 匹配空值字符                                             |
    |----------------------+----------------------------------------------------------|
    | 字符类:锚定字符     |                                                          |
    |----------------------+----------------------------------------------------------|
    | \b                   | 匹配字边界(不在[] 中时)                                |
    | \B                   | 匹配非字边界                                             |
    | ^                    | 匹配行首                                                 |
    | $                    | 匹配行尾                                                 |
    | \A                   | 匹配字符串开头                                           |
    | \Z                   | 匹配字符串或行的末尾                                     |
    | \z                   | 只匹配字符串末尾                                         |
    | \G                   | 匹配前一次m//g 离开之处                                  |
    |----------------------+----------------------------------------------------------|
    | 字符类:重复字符     |                                                          |
    |----------------------+----------------------------------------------------------|
    | x?                   | 匹配0或1个x                                              |
    | x*                   | 匹配0或多个x                                             |
    | x+                   | 匹配1或多个x                                             |
    | (xyz)+               | 匹配1或多个模式xyz                                       |
    | x(m,n)               | 匹配m到n个x组成的值                                      |
    |----------------------+----------------------------------------------------------|
    | 字符类:替换字符     |                                                          |
    |----------------------+----------------------------------------------------------|
    | (was|were|will)      | 匹配was、were、will之一                                  |
    |----------------------+----------------------------------------------------------|
    | 字符类:记忆字符     |                                                          |
    |----------------------+----------------------------------------------------------|
    | (stirng)             | 用于反向引用                                             |
    | \1 或$1              | 匹配第一组括号                                           |
    | \2 或$2              | 匹配第二组括号                                           |
    | \3 或$3              | 匹配第三组括号                                           |
    |----------------------+----------------------------------------------------------|
    | 字符类:其他字符     |                                                          |
    |----------------------+----------------------------------------------------------|
    | \12                  | 匹配八进制数,直到\377                                   |
    | \x811                | 匹配十六进制数值                                         |
    | \cX                  | 匹配控制字符。譬如\cC 指的是<Ctrl>-C;\cV 指的是<Ctrl>-V |
    | \e                   | 匹配ASCII 编码中的ESC 符(取消),而非反斜杠             |
    | \E                   | 标识使用\U、\L 或\Q 的大小写更改操作的结束位置           |
    | \l                   | 只小写下一个字符                                         |
    | \L                   | 小写字符,直到字符串末尾或碰到\E                         |
    | \N                   | 匹配已命名的字符,如\N{greek:Beta}                       |
    | \p{PROPERTY}         | 匹配拥有已命名属性的任意字符,譬如\p{IsAlpha}/           |
    | \p{PROPERTY}         | 匹配不带已命名属性的任意字符                             |
    | \Q                   | 引用\E之前的元字符                                       |
    | \u                   | 只大写下一个字符                                         |
    | \U                   | 大写字符,直到字符串末尾或碰到\E                         |
    | \x{NUMBER}           | 匹配以十六进制形式给出的Unicode 编码NUMBER               |
    | \X                   | 匹配Unicode 编码“组合字符序列”字符串                   |
    | \[                   | 匹配元字符                                               |
    | \\                   | 匹配反斜杠                                               |
时间: 2024-10-06 19:54:18

Perl正则表达式元字符的相关文章

&lt;摘录&gt;perl正则表达式中的元字符、转义字符、量词及匹配方式

Linux平台上被广泛使用的正则表达式库PCRE - Perl-compatible regular expressions,从其名字即可知道,PCRE提供的是一套与Perl中相兼容的正则表达式. 元字符(Meta-character) '\' : 在任何元字符前面加上反斜线,就会使它失去元字符的特殊作用.例如/3\.1415/这个模式里没有通配符 '^' : 匹配行首:在字符集中它是脱字符,表示求补集 '$' : 匹配行尾(或结尾处新行之前字符) '.' : 除新行(newline)外的任一字

Perl正则表达式例子

Perl正则表达式 一.介绍 正则表达式各语言都有自己的规范,但是基本都差不多,都是由元字符的组合来进行匹配:由于Nmap内嵌的服务与版本探测是使用的Perl正则规范,因此此篇博客记录一下Perl正则的相关内容,方便后期查阅. 二.Perl正则例子 下面的例子可能有不足之处,有些来源于博客,没有验证:1. 匹配IP地址:\d+\.\d+\.\d+\.\d+ \d:匹配一个数字字符,\d+:匹配一次或多次数字字符. \.:使用转义字符匹配'.'. 2. 匹配邮箱类似于[email protecte

通配符与正则表达式元字符的理解及grep的实例应用

什么是通配符(glob)?     通配符是Linux shell中用来描述(匹配)不确定字符的特殊符号. 看看具体通配符是如何描述字符?     *       代表任意字符任意次数     ?       代表任意单个字符0次或者1次     []      代表括号中存在的任意单个字符     [!]     代表非括号中存在的任意单个字符     [^]     代表指定范围外的任意单个字符     [a-z]   代表所有单个小写字母     [A-Z]   代表所有单个大写字母   

python正则表达式元字符

python正则表达式元字符,布布扣,bubuko.com

Python_正则表达式元字符

1 ''' 2 常用的正则表达式元字符 3 . 匹配换行符以外的任意单个字符 4 * 匹配位于'*'之前的字符或子模的0次或多次出现 5 + 匹配位于'+'之前的字符或子模式的1次或多次出现 6 - 用在[]之内用来表示范围 7 | 匹配位于'|'之前或之后的字符 8 ^ 匹配行首,匹配以^后面的字符开头的字符串 9 $ 匹配行尾,匹配以$之前的字符结束的字符串 10 ? 匹配位于'?'之前的0个或1个字符.当此字符紧随任何其他限定符(*.+.?.{n}.{n,}.{n,m}之后时,匹配模式是'

Sed 命令详解 正则表达式元字符

1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上.sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示.处理完输入文件的最后一行后,sed便结束运行.sed把每一行都存在临时缓冲区中,对这个副本进行编辑,

shell中正则表达式元字符

'.'    匹配任一字符 '*'   指定*前的字符可以连续重复使用任意次 '^'   字符串开头 '$'   字符串结尾 '.*'   任意数量的字符 '\'     转义字符 '[...]' 匹配任一字符 '[^...]' 不匹配任一字符,取反 '\(....\)'  标记匹配字符,后续通过转义序列进行引用,例如\(grep\).*\1,匹配2个grep中间带有任意数目的字符 '\n'  重复在\(...\) 内的第n个模式 x\{m,n\} 区间表达式,匹配x字符出现的次数区间.x\{n

正则表达式——元字符

要想学会正则表达式,理解元字符是一个必须攻克的难关. 不用刻意记 .:匹配任何单个字符. 例如正则表达式"b.g"能匹配如下字符串:"big"."bug"."bg",但是不匹配"buug","b..g"可以匹配"buug". [ ] :匹配括号中的任何一个字符. 例如正则表达式"b[aui]g"匹配bug.big和bag,但是不匹配beg.baug

老男孩带你了解perl正则表达式中的零宽断言

老男孩IT教育小编为大家整理了perl正则表达式中的零宽断言的方法,希望能帮到大家 1.1 前言 本文只介绍perl语言正则表达式的零宽断言功能. 零宽断言实质:匹配文本里面的位置. 零宽断言叫zero-length assertions,也叫lookaround(这个更容易理解). 包括:lookahead(向前看,零宽度正预测先行断言),lookbehind(向后看,零宽度正回顾后发断言). 从左到右对文本进行匹配,判断是否符合exp表达式. 名字 表达式 如果子表达式成功则- positi