正则表达式
来源:互联网 发布:直接翻译软件界面 编辑:程序博客网 时间:2024/06/05 16:20
在讲正则表达式前先了解一个概念——元字符(Metacharacters),元字符是用来阐述字符表达式意义的字符。简言之,元字符就是描述字符的字符,它用于对字符表达式的内容、转换及各种操作信息进行描述。
那么,正则表达式即是由一串字符和元字符构成的字符串,简称RE(Regular Expression)。正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合。
使用正则表达式的一些Shell工具如sed、awk、grep、uniq等,都可看作是数据过滤器,将不满足正则表达式定义的数据拒绝掉,剩下与正则表达式匹配的数据。
正则表达式的基本元素包括普通字符和元字符,其中元字符有*、^、$、[]等,Shell赋予了这些字符超越字面意思的意义。因此我们的主要目的是掌握正则表达式中元字符的意义,能熟练运用正则表达式构建一个“规则字符串”,用于表达一种对字符串的过滤逻辑。下面简单介绍一些元字符的意义和用法。
1、“*”符号——用于匹配前面一个普通字符的0此或多次重复。
2、“.”符号——用于匹配任意一个字符
3、“^”符号——用于匹配行首,表示行首的字符就是“^”字符后面的那个字符。
4、“$”符号——用于匹配行尾,放在匹配字符之后,与“^”的功能和用法相反。
5、“[]”方括号——用于匹配字符集合,支持穷举法列出字符集合的所有元素,也支持使用“-”符号表示字符集合的范围,例如[012345]、[a-z]。
注意:“^”放在“[]”外面表示匹配行首,但放在“[]”里面则表示取反,如[^b-d]表示匹配除b、c、d外的字符。
6、“\”符号——为转义符,用于屏蔽一个元字符的特殊意义。
7、“\<\>”符号——用于精确匹配,利用“\”符号屏蔽“<>”符号。
8、“\{\}”系列符号——用于表示前一个字符的重复,与“*”类似,但“\{\}”可以指定重复次数,如[0-9]\{3\}表示匹配3个十进制数字。该符号包括三种形式:
\{n\}:匹配前面字符n次
\{n,\}:匹配前面字符至少n次
\{n,m\}:匹配前面字符n~m次
除了上述的元字符外,awk等工具还支持一些扩展的元字符,包括:
“?”符号——用于匹配0个或1个前面的字符。
“+”符号——用于匹配1个或多个前面的字符。
“()”——表示一个字符集合或用于expr中。
“|”——表示“或”,用于匹配一组可选的字符。
我们需要明白bash本身不支持正则表达式,使用正则表达式的是Shell命令和工具,但是bash Shell可以使用正则表达式中的一些元字符实现通配功能。常用的通配符包括正则表达式元字符:?、*、[]、{}、^等,可是这些元字符在通配中的意义与正则表达式中的意义不完全一致 T_T。
例如:“*”符号表示任意位的任意字符;“?”符号表示一个任意字符;“^”符号表示取反;“[]”符号的意义与正则表达式一样;“{}”符号表示一组表达式的集合,值得注意的是,{}符号内的表达式是“或”的关系,例如ls {*.awk,*.sed} 的作用是列出当前目录下以.awk 或 .sed结尾的文件。
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 2013-12-11调用系统API的ChooseFont字体设置
- 严重: null, httl: 1.0.11, jvm: 1.6.0_37, os: Windows 7 6.1 amd64
- linux/unix命令详解之find
- jQuery的基础知识二
- 关于程序员的冷笑话 (转载www.lenxiaohuadaquan.net )
- 正则表达式
- android 编译小结,模拟器打包~
- java.lang.ClassCastException: 异常处理
- linux/unix命令详解之sort
- Android 对于第三方预置可卸载的apk,如何客制化其在主题中的资源?
- js正则函数match、exec、test、search、replace、split使用介绍 详细出处参考:http://www.jb51.net/article/28007.htm
- Linux 下 查看以及修改文件权限
- linux/unix命令详解之sed
- js获取select标签选中的值