Linux 正则表达

  • 基本组成部分
  • 正则表达式的基本组成部分。

  • 正则表达式


    描述


    示例


    \


    转义符,将特殊字符进行转义,忽略其特殊意义


    a\.b匹配a.b,但不能匹配ajb,.被转义为特殊意义


    ^


    匹配行首,awk中,^则是匹配字符串的开始


    ^tux匹配以tux开头的行


    $


    匹配行尾,awk中,$则是匹配字符串的结尾


    tux$匹配以tux结尾的行


    .


    匹配除换行符\n之外的任意单个字符,awk则中可以


    ab.匹配abc或bad,不可匹配abcd或abde,只能匹配单字符


    [ ]


    匹配包含在[字符]之中的任意一个字符


    coo[kl]可以匹配cook或cool


    [^ ]


    匹配[^字符]之外的任意一个字符


    123[^45]不可以匹配1234或1235,1236、1237都可以


    [ - ]


    匹配[]中指定范围内的任意一个字符,要写成递增


    [0-9]可以匹配1、2或3等其中任意一个数字


    ?


    匹配之前的项1次或者0次


    colou?r可以匹配color或者colour,不能匹配colouur


    +


    匹配之前的项1次或者多次


    sa-6+匹配sa-6、sa-666,不能匹配sa-


    *


    匹配之前的项0次或者多次


    co*l匹配cl、col、cool、coool等


    ()


    匹配表达式,创建一个用于匹配的子串


    ma(tri)?匹配max或maxtrix


    { n }


    匹配之前的项n次,n是可以为0的正整数


    [0-9]{3}匹配任意一个三位数,可以扩展为[0-9][0-9][0-9]


    {n,}


    之前的项至少需要匹配n次


    [0-9]{2,}匹配任意一个两位数或更多位数


    {n,m}


    指定之前的项至少匹配n次,最多匹配m次,n<=m


    [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字


    |


    交替匹配|两边的任意一项


    ab(c|d)匹配abc或abd

  • POSIX字符类
  • POSIX字符类是一个形如[:...:]的特殊元序列(meta sequence),他可以用于匹配特定的字符范围。

  • 正则表达式


    描述


    示例


    [:alnum:]


    匹配任意一个字母或数字字符


    [[:alnum:]]+


    [:alpha:]


    匹配任意一个字母字符(包括大小写字母)


    [[:alpha:]]{4}


    [:blank:]


    空格与制表符(横向和纵向)


    [[:blank:]]*


    [:digit:]


    匹配任意一个数字字符


    [[:digit:]]?


    [:lower:]


    匹配小写字母


    [[:lower:]]{5,}


    [:upper:]


    匹配大写字母


    ([[:upper:]]+)?


    [:punct:]


    匹配标点符号


    [[:punct:]]


    [:space:]


    匹配一个包括换行符、回车等在内的所有空白符


    [[:space:]]+


    [:graph:]


    匹配任何一个可以看得见的且可以打印的字符


    [[:graph:]]


    [:xdigit:]


    任何一个十六进制数(即:0-9,a-f,A-F)


    [[:xdigit:]]+


    [:cntrl:]


    任何一个控制字符(ASCII字符集中的前32个字符)


    [[:cntrl:]]


    [:print:]


    任何一个可以打印的字符


    [[:print:]]

  • 元字符
  • 元字符(meta character)是一种Perl风格的正则表达式,只有一部分文本处理工具支持它,并不是所有的文本处理工具都支持。

  • 正则表达式


    描述


    示例


    \b


    单词边界


    \bcool\b 匹配cool,不匹配coolant


    \B


    非单词边界


    cool\B 匹配coolant,不匹配cool


    \d


    单个数字字符


    b\db 匹配b2b,不匹配bcb


    \D


    单个非数字字符


    b\Db 匹配bcb,不匹配b2b


    \w


    单个单词字符(字母、数字与_)


    \w 匹配1或a,不匹配&


    \W


    单个非单词字符


    \W 匹配&,不匹配1或a


    \n


    换行符


    \n 匹配一个新行


    \s


    单个空白字符


    x\sx 匹配x x,不匹配xx


    \S


    单个非空白字符


    x\S\x 匹配xkx,不匹配xx


    \r


    回车


    \r 匹配回车


    \t


    横向制表符


    \t 匹配一个横向制表符


    \v


    垂直制表符


    \v 匹配一个垂直制表符


    \f


    换页符


    \f 匹配一个换页符

时间: 2024-12-28 02:22:03

Linux 正则表达的相关文章

linux正则表达有话说

一.基本通配符 globbing:文件名通配符         *:任意长度的任意字符         ?:任意单个字符         []:匹配范围内的任意单个字符         [^]:匹配范围外的任意单个字符 二.文本处理工具之Linux文件处理三剑客 Linux文本三剑客: 1)grep:文本处理工具 2)sed:流编辑器 3)awk:文本报告生成器,格式化文本 三.正则表达式 正则表达式:regular experssion regexp 由一类特殊字符及文本所编写的模式,其中有些

linux 三剑客正则表达

1.   模糊匹配是全文匹配; 正则表达是关键字匹配,是包含 ^ 开头 $ 结尾 ^$ 空行 . 任意一个字符 \ 反转义 * 前面一个字符重复0到多次 .*  任意多个字符 ? 前面一个字符有或者没有 \{m,n\} 前面的字符重复m到n次 egrep或sed -r可以去掉\ [a-c|0-9] a,b,c或者一个数字 [^abc] []之外的

shell正则表达二

shell正则表达 二部分 一.printf命令: 1. 格式化输出.(print  format) 2. 命令格式: printf'打印格式'实际内容 1. 打印格式: 1) \a(警告声音输出) 1) \b(退格键) 1) \n(输出新的一行) 1) \r(帧处于行的开始,即enter键) \t(水平的table键) 1) \v(垂直的table键) 1) \xNN(x为ASCII码十六进制表示:NN为俩位数数字:可转换数字成为字符) 1) %ns(n为数字:s代表string,即多少个字符

正则表达示

这里对正则表达示进行一定程度的总结.为避免太过纠结,这里避开一些 鸡肋 的正则用法. 更多文档参考官方文档 http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html 字符 x 字符 x \\ 反斜线字符 \t 制表符 ('\u0009') \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') \f 换页符 ('\u000C') \a 报警 (bell) 符 ('\u0007') \e 转义

对正则表达这个东西还需要多练习啊

正则表达,如果不配合PHP语言来实现其他功能的话,充其量也就是一行字符串.它最基本的功能就是判断,用来判断某些字符是不是存在于一个已被定义的变量中. 所以,可以用它判断的这个特性来作为function的条件. 另外,正则表达式也具有增删改查的功能,但它最主要的功能就是"查". 最后:从某些方面来说,数据库也算是语言吧.

Java正则表达中Greedy Reluctant Possessive 的区别

上一篇文章<编程思想之正则表达式 >中讲了正则表达式的原理.使用方法和常见的正则表达式总结,本文将进一步探讨Java正则表达中Greedy.Reluctant.Possessive三种策略的区别. 从Java的官方文档http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html中我们可以看到,正则表达式表示数量词的符号有三套,分别是Greedy(贪婪的).Reluctant(勉强的)和Possessive(独占的).

Javascript正则构造函数与正则表达字面量&amp;&amp;常用正则表达式

本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达式: 使用new RegExp()构造函数 使用正则表达字面量 先说结果,使用正则表达字面量的效率更高. 下面的示例代码演示了两种可用于创建正则表达式以匹配反斜杠的方法: 1 //正则表达字面量 2 var re = /\\/gm; 3 4 //正则构造函数 5 var reg = new RegE

ruby正则表达

1.Ruby中正则表达式的写法 主要有三种 在//之间,要进行转义 在%r{}内,不用进行转义 Regexp.new()内,不用进行转义 /mm\/dd/,Regexp.new("mm/dd"),%r{mm/dd}三者效果相同,实质都是新建了一个Regexp的类. 2.匹配的两种方法 =~肯定匹配, !~否定匹配.=~表达式返回匹配到的位置索引,失败返回nil,符号左右内容可交换 regexp#match(str),返回MatchData,一个数组,从0开始,还有match.pre_m

通过完善邮箱匹配来一步步学习正则表达

首先,在学习之前先确定一下邮箱的格式,邮箱的一般格式为[email protected],其中xxx可为数字.字母.下划线_,中划线-,点号.,加号+等组成. 在看具体代码之前需要先了解一些基础知识 # []表示匹配字符集中的任意一个字符# \w 表示匹配任何字母数字字符# \s表示任何空格字符# \d表示任何十进制数字# +表示匹配1次或多次前面出现的正则表达# *表示匹配0次或多次前面出现的正则表达# (?:)表示一个匹配不用保存的分组 1.匹配最简单的邮箱格式,如[email protec