正则表达式初探

来源:互联网 发布:windows已出现关键问题 编辑:程序博客网 时间:2024/06/05 02:28

• 正则表达式:
想要实现出实用高效的shell脚本,就要用到Linux上重要的3种工具:grep,sed,awk
但要想学好这3个工具首先要打好正则表达式和正则表达式元字符方面的基础.


• 什么是正则表达式:
正则表达式是一种字符模式,首先用于在查找的过程匹配指定的字符,在有可以用特殊的元字符来控制他们.


• 正则表达式元字符?
分为两种:shell元字符和正则表达式元字符

shell元字符:是由shell进行解析的,如: rm *

正则表达式元字符:是由各种执行模式匹配的程序来解析,如vim,grep,sed,awd

两个关键词:界定和控制


• 注意事项:
你要熟悉文件的结构
它不是万能的



元字符 功能 示例 匹配对象
^ 行首定位符 /^love/ 所有以love开头的行


$ 行尾定位符 /love$/ 所有以love结尾的行


. 匹配单个字符 /l..e/ 包含一个l,后跟两个字符,再跟一个e的行


* 匹配0个或多个重复、 / *love/ 包含跟在0个或多个空格后的love的行
的位于*前的字符


[] 匹配一组字符中任一个 /[Ll]ove/ 包含love and Love的行


[x-y] 匹配指定范围内的一个 /[A-Z]ove/ 匹配后面跟着ove的一个A到Z之间的字符


[^] 匹配不在指定组内的 /[^A-Z]/ 匹配不在范围A到Z之间的任意一个字符


\ 转义元字符 /love\./ love后是.


\< 词首定位符


\> 词尾定位符


\(……\) 匹配稍后将要使用的字符和标签


x\{m\} 或
x\{m,\} 或
x\{m,n\} 字符x和重复出现:m次,至少m次,至少m次且不超过n次。


----------------------------------------------------------------------
demo


Christian Scott lives here and will put on a Christimas Parth.
There are around 30 to 35 people invited.
They are:
Tom
Dan
Rhonda Savage
Nicky and kimberly.
Steve, Suzanne, Ginger and Larry.

以大写字母开头,后跟两个任意字符,再跟一个换行符
/^[A-Z]..$/

以大写字母开头,后跟0个或多个小写字母或空格,再跟数字3和一个0-5之间的数字的行
/^[A-Z][ a-z]*3[0-5]/
/[A-Z] *[a-z]*3[0-5]/


查找包含跟在0个或多个小写字母后的句号的行
/[a-z]*\./
/[a-z]*.$/
/ *[a-z]\./


查找以0个或多个空格开头(制表符不算空格),后跟一个大写字母、两个小写字母和一个换行符的行
/^ *[A-Z][a-z][a-z]$/
/ *[A-Z][a-z]\{2\}$/


查找以0个或多个大小写字母开头,后跟一个非逗号的字符,再跟0个或多个大小写字母和一个换行符的行
/^[A-Za-z]*[^,][A-Za-z]*$/



原创粉丝点击