正则表达式 初学
正则表达式使用方式及作用: 正则表达式就是通过处理字符串的方法,可以让用户轻松搜索/替换某特定的字符串。 正则表达式类型: 正则表达式分为:基本正则表达式和扩展正则表达式 grep和基本正则表达式的关系: grep是强大的文本搜索工具,支持基本正则表达式,通过元字符去匹配搜索,替换字符。搜索迅速,方便,智能化。
一,基本正则表达式的元字符: 字符匹配: . :匹配任意单个字符 []:匹配指定范围内的任意单个字符 [0-9] [[:digit:]]匹配任意一个数字 [a-z] [[:lower:]]匹配任意一个小写字母 [A-Z] [[:upper:]]匹配任意一个大写字母 [[:space:]]匹配空白字符 [[:paunct:]] [[:alpha:]]匹配任意一个字母 [[:alnum:]]匹配任意一个字母或数字 [^]:匹配指定范围外的任意单个字符 次数匹配元字符:用于实现指定其前面的字符所能够出现的次数 *:任意长度,它前面的字符可以出现任意次 例如: x*y = xxy ?:0次或1次,它前面的字符是可有可无 例如: x?y =xy y {m}:m次,它前面的字符要出现m次 例如:x{2}y=xxy {m,n}:至少m次 至多n次 例如x{2,5}y = xxy {m,}:至少m次 {0,n}:至多N次 .*:任意长度的任意字符 位置锚定: ^:行首锚定 写在模式最左侧 $:行尾锚定 写在模式最右侧 ^$:空白行 不包含特殊字符的连续字符组成的串叫单词: &;:词首 出现于单词左侧 &;:词尾 出现于单词右侧 分组: () 例如:(ab)* 分组中的模式匹配到的内容,可由正则表达式引擎记忆在内存中,之后可被引用。 引用: 例如(ab(x)y).*(mn) 有编号:左到右的左括号,与其匹配右括号
#:引用第n个括号所匹配前面的内容,而非模式本身 例如:(ab?c).*1 =abcmnabc 命令选项: -v:反向选取 -o:仅显示匹配的字串,而非字串所在的行 -i:忽略字符大小写 -E:支持扩展正则表达式 二,基本正则表达式的元字符示例: 示例1(字符匹配:[a-z]匹配范围内的任意字符[[:digit:]]匹配任意一个数字) 示例2(次数匹配元字符{m}:m次,它前面的字符要出现m次) 示例3(位置锚定:&;:词首锚定) 示例4(分组:()模式) 通过命令别名可以改变搜索到字符的字体 命令:alias grep='grep --color=auto'^C 注:通过以上命令可立即生效,想要永久保存有效,修改配置文件。
示例1 [a-z] [[:digit:]]匹配任意一个数字
示例2次数匹配元字符:用于实现指定其前面的字符所能够出现的次数
{m}:m次,它前面的字符要出现m次 例如:1{2}y=1128
示例3位置锚定: &;:词首 出现于单词左侧
示例4 分组: () 例如:(12)* *:匹配任意长度的字符 &;:词首锚定 三,egrep支持正则表达式: 扩展正则表达式除了基本正则表达式几个元字符不同,基本一致。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |