基本组成部分:
正则表达式的基本组成部分。
正则表达式
|
描述
|
示例
|
\
|
转义符,将特殊字符进行转义,忽略其特殊意义
|
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 匹配一个换页符
|
本文出自 “一只小菜鸟” 博客,请务必保留此出处http://aresxin.blog.51cto.com/4734097/1602624
分享到:
相关推荐
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。本文介绍了UNIX和Linux Shell正则表达式的语法。
- `cflags`: 控制编译过程的标志位,如`REG_EXTENDED`表示扩展正则表达式语法。 2. **匹配正则表达式** - 使用`regexec()`函数来测试一个字符串是否与编译好的正则表达式匹配。 - 函数原型: ```c int regexec...
这款小型库虽然体积小,但功能却不容小觑,它支持各种常见的正则表达式语法,如字符类、量词、分组、预查和后顾等,涵盖了大部分开发者在实际项目中可能用到的功能。 跨平台性是这个库的一大亮点。在开发过程中,...
这里,`REG_EXTENDED`标志指示我们使用扩展的正则表达式语法。 2. **执行匹配**:编译完成后,我们可以使用`regexec()`函数来尝试匹配目标字符串。如果匹配成功,`regexec()`返回值为0;否则,返回非零值。例如: ...
### Linux Shell 正则表达式语法详解 #### 标题:Linux Shell 正则表达式语法介绍 #### 描述:本文旨在详细介绍 Linux Shell 中使用的正则表达式的语法及其应用场景。 #### 标签:正则表达式 #### 知识点详解: ...
在"简单"部分,初学者会学习到基础的正则表达式语法,如匹配单个字符(如"."代表任意字符)、字符类(如"[a-z]"匹配小写字母)以及重复匹配(如"*"表示零次或多次)。这些基础知识是构建更复杂表达式的基础。 "中级...
- **grep/egrep**:Unix/Linux 下的命令行工具,用于在文件中搜索匹配正则表达式的行。 #### 五、正则表达式的高级主题 对于更深入的学习者来说,还可以探索以下高级主题: - **反向引用**:在正则表达式中使用...
这些基本的正则表达式语法在UNIX和LINUX系统的SHELL中被广泛使用,特别是在脚本和命令行中,它们可以帮助用户进行高效的文本处理,如文件名查找、数据筛选、文本替换等操作。掌握正则表达式语法,能极大地提高在文本...
Linux Shell中的正则表达式是用于模式匹配的强大工具,它允许你在命令行或者脚本中进行复杂的文本查找、替换和处理。以下是对正则表达式关键知识点的详细解释: 1. **元字符**:元字符是具有特殊含义的字符,如`^`...
### Linux Shell 正则表达式语法详解 #### 一、正则表达式概念 正则表达式是一种强大的文本处理工具,它可以实现字符串的查找、替换等功能。在Linux shell环境中,正则表达式广泛应用于文件名扩展、命令参数、文本...
4. **学习资源**:RegexBuddy内置了丰富的正则表达式语法文档和教程,用户可以在使用过程中随时查阅,提高对正则表达式的理解和运用能力。 5. **跨平台兼容**:尽管本版本是英文版,但RegexBuddy通常支持多平台,...
它与grep的区别在于默认支持更丰富的正则表达式语法。 - **sed**:sed默认使用BREs,通过添加`-r`选项可以使用ERE。它主要用于对文本文件的内容进行查找、替换、删除等操作。 - **awk**:awk内置支持ERE,适用于...
5. **文档支持**:内置正则表达式语法参考,方便用户查询和学习。 6. **模板库**:预设常见正则表达式模式,如邮箱验证、电话号码格式检查等,方便快速选用。 7. **多平台兼容**:可能支持Windows、MacOS、Linux等...
正则表达式(regular expression)是一种表示方式,最早在LINUX被当做一种搜索算法应用在编辑器中,后来被广泛应用,不仅PHP脚本支持正则表达式,Perl、C#、Java以及JavaScript和MySQL也对正则表达式支持。...
掌握正则表达式,可以极大地提升你在编程和数据处理上的效率,无论是UNIX/Linux系统还是Windows环境,甚至在各种编程语言中,如Python、Java、JavaScript等,正则表达式都是不可或缺的一部分。 正则表达式的核心...
### 正则表达式知识点详解 #### 一、正则表达式概述 正则表达式是一种强大的文本处理工具,能够帮助我们实现对字符串的搜索、替换等操作。它在多种编程语言和环境中都有广泛的应用,如*nix系统(Linux、Unix等)、...