Unix Regex

基本元字符集(Metacharacters)及其含义 

^ 只只匹配行首 

$ 只只匹配行尾 

* 只一个单字符后紧跟*,匹配0个或多个此单字符 

[ ] 只匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用- 

表示[ ]内字符序列范围,如用[ 1 - 5 ]代替[ 1 2 3 4 5 ] 

/ 只用来屏蔽一个元字符的特殊含义。因为有时在s h e l l中一些元字符有 

特殊含义。/可以使其失去应有意义 

. 只匹配任意单字符 

pattern/{n/} 只用来匹配前面p a t t e r n出现次数。n为次数 

pattern/{n,/}  只含义同上,但次数最少为n 

pattern/{n,m/} 只含义同上,但p a t t e r n出现次数在n与m之间 

 

边界匹配( Boundary Matchers)

如果要匹配所有空行,执行以下操作: 

^ $ 

具体分析为匹配行首,又匹配行尾,中间没有任何模式,因此为空行。 

如果只返回包含一个字符的行,操作如下: 

^ . $ 

 

 

使用*匹配字符串中的单字符或其重复序列 

 

 

 

使用此特殊字符匹配任意字符或字符串的重复多次表达式。例如: 

compu*t 

将匹配字符u一次或多次: 

computer

computing

compuuuuuuut

 

 

使用/屏蔽一个特殊字符的含义

 

如果要在正则表达式中匹配以*.pas结尾的所有文件,可做如下操作: 

/*/.pas 

即可屏蔽字符*的特定含义。

 

 

 

使用[]匹配一个范围或集合

 

使用[ ]匹配特定字符串或字符串集,可以用逗号将括弧内要匹配的不同字符串分开,但并 

不强制要求这样做(一些系统提倡在复杂的表达式中使用逗号),这样做可以增加模式的可读性。 

使用“-”表示一个字符串范围,表明字符串范围从“-”左边字符开始,到“-”右边字 符结束。

 

 

假定要匹配任意一个数字,可以使用: 

[0123456789] 

然而,通过使用“-”符号可以简化操作: 

[0-9] 

或任意小写字母 

[a-z] 

要匹配任意字母,则使用: 

[A-Za-z]

注意^符号的使用,当直接用在第一个括号里,意指否定或不匹配括号里内容。 

[^a-zA-Z] 

匹配任一非字母型字符,而 

[^0-9] 

匹配任一非数字型字符。 

 

 

使用/{/}匹配模式结果出现的次数 

请看第一个例子,匹配字母A出现两次,并以B结尾,操作如下: 

A/{2/}B 

匹配值为AAB 

匹配A至少4次,使用: 

A/{4,/}B 

可以得结果AAAAB或AAAAAAAB,但不能为AAAB。

 

 

经常使用的正则表达式举例

^ 对行首

$ 对行尾

^[the] 对以the开头行

[Ss]igna[lL] 对匹配单词signal、signaL,Signal、SignaL

[Ss]igna[lL]/. 对同上,但加一句点

[mayMAY] 对包含may大写或小写字母的行

^USER$ 对只包含USER的行

[tty]$ 对以tty结尾的行

/. 对带句点的行

^d..x..x..x 对用户、用户组及其他用户组成员有可执行权限的目录

^[^l] 对排除关联目录的目录列表

[.*0] 对0之前或之后加任意字符

[000*] 对000或更多个

[iI] 对大写或小写I

[iI][nN] 对大写或小写i或n

[^$] 对空行

[^.*$] 对匹配行中任意字符串

^......$ 对包括6个字符的行

[a-zA-Z] 对任意单字符

[a-z][a-z]* 对至少一个小写字母

[^0-9/$] 对非数字或美元标识

[^0-0A-Za-z] 对非数字或字母

[123] 对1到3中一个数字

[Dd]evice 对单词device或Device

/^q 对以^q开始行

^.$ 对仅有一个字符的行

^/.[0-9][0-9] 对以一个句点和两个数字开始的行

'"Device"' 对单词device

De[Vv]ice/. 对单词Device或device

[0-9]/{2/}-[0-9]/{2/}-[0-9]/{4/} 对日期格式dd-mm-yyyy

[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/} 对IP地址格式nnn.nnn.nnn.nnn

[^.*$] 对匹配任意行

 

 

 

More info about Java Regex

 

 

 

 

 

 

时间: 2024-10-27 10:19:30

Unix Regex的相关文章

UltraEdit-32 v13.00a+2 官方简体中文版 下载_常用工具

UltraEdit是能够满足你一切编辑需要的编辑器.UltraEdit是一套功能强大的文本编辑器,可以编辑文本.十六进制.ASCII码,可以取代记事本,内建英文单字检查.C++及VB指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢.软件附有HTML标签颜色显示.搜寻替换以及无限制的还原功能,一般大家喜欢用其来修改EXE或DLL文件. UltraEdit-32 v13.00a Changes 4/12/2007Improved startup time Scripting enha

给系统管理员的 15 条实用 Linux/Unix 磁带管理命令

给系统管理员的 15 条实用 Linux/Unix 磁带管理命令 磁带设备应只用于定期的文件归档或将数据从一台服务器传送至另一台.通常磁带设备与 Unix 机器连接,用 mt 或 mtx 控制.强烈建议您将所有的数据同时备份到磁盘(也许是云中)和磁带设备中.在本教程中你将会了解到: 磁带设备名 管理磁带驱动器的基本命令 基本的备份和恢复命令 为什么备份? 一个备份计划对定期备份文件来说很有必要,如果你宁愿选择不备份,那么丢失重要数据的风险会大大增加.有了备份,你就有了从磁盘故障中恢复的能力.备份

《UNIX/Linux 系统管理技术手册(第四版)》——2.4 Perl编程

2.4 Perl编程 UNIX/Linux 系统管理技术手册(第四版) Larry Wall发明了Perl语言,它第一种真正伟大的脚本编程语言.它的能耐要比bash大得多,而且编写良好的Perl代码也相当容易阅读.另一方面,Perl没有给开发人员强加太多的风格规范,所以不考虑可读性的Perl代码显得很神秘.Perl也被诟病为只适合写(不适合读)的语言. 我们在这里介绍Perl 5,这个版本成为标准已经有10年了.Perl 6是一个仍处在开发之中的主要版本.参考perl6.org了解详情. 对于系

Unix环境编程常用头文件

POSIX标准定义的头文件<dirent.h> 目录项 <fcntl.h> 文件控制 <fnmatch.h> 文件名匹配类型 <glob.h> 路径名模式匹配类型 <grp.h> 组文件 <netdb.h> 网络数据库操作 <pwd.h> 口令文件 <regex.h> 正则表达式 <tar.h> TAR归档值 <termios.h> 终端I/O <unistd.h> 符号常量

Regex Expression的资料和笔记整理

维基百科:http://en.wikipedia.org/wiki/Regular_expression 正则表达式在线测试:http://tool.chinaz.com/regex/ 正则表达式,常用于文件搜索和数据校验等 iOS 提供了对正则表达式的支持:NSRegularExpression 常用的第三方正则库regexkit有全面的介绍(英文): http://regexkit.sourceforge.net/RegexKitLite/index.html 这个需要很长时间研究和总结积累

《UNIX/Linux 系统管理技术手册(第四版)》——2.3 正则表达式

2.3 正则表达式 UNIX/Linux 系统管理技术手册(第四版) 尽管有些语言比其他语言对正则表达式更关注,但大多数现代语言都支持正则表达式.诸如grep和vi这样的UNIX命令也使用正则表达式.正则表达式如此常见,以至于通常都把其名称缩写为"regex".有几本书全篇就讲如何发掘正则表达式的威力,而且无数博士论文的主题也都是正则表达式. 在解释诸如wc -l*.pl这样的命令行时,shell会做文件名匹配和扩展,但这并不是正则表达式匹配的一种形式.它是一种称之为"she

Caused by: java.lang.ClassNotFoundException: org.apache.oro.text.regex.Malformed

问题描述 215 UNIX Type: L8Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/oro/text/regex/MalformedPatternException at org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory.createUnixFTPEntryParser(DefaultFTPFileEnt

SED单行脚本快速参考中文版(Unix 流编辑器)_linux shell

英文标题:USEFUL ONE-LINE SCRIPTS FOR SED (Unix stream editor) 原标题:HANDY ONE-LINERS FOR SED (Unix stream editor) 整理:Eric Pement - 电邮:pemente[at]northpark[dot]edu 版本5.5 译者:Joe Hong - 电邮:hq00e[at]126[dot]com 在以下地址可找到本文档的最新(英文)版本: http://sed.sourceforge.net/

正则regex的posix标准,gnu扩展以及PC兼容性

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑. 给定一个正则表达式和另一个字符串,我们可以达到如下的目的: 1. 给定的字符串是否符合正则表达式的过滤逻辑(称作"匹配"): 2. 可以通过正则表达式,从字符串中获取我们想要的特定部分. 正则表达式的特点是: 1. 灵活性.逻辑性和功能性非常的强: 2. 可以迅速地用极简单的方式