当前位置: 首页 > Linux

Linux正则表达式的重要性

时间:2023-04-06 03:01:00 Linux

我们可以通过sed或者awk工具轻松愉快的分析一堆文本,处理数据,分析服务器错误日志,统计分析服务器用户访问日志。但是要玩好sed和awk工具,正则表达式是基础,必须要掌握。单个字符特定字符,如'1'、'a'、'A'范围字符数字字符:[0-9],表示0到9数字中的任意小写字符:[a-z],表示字母a中的任意一个toz任意大写字符:[A-Z],代表字母A到Z中的任意特殊符号:[,._]取反:[^0-9],代表除数字0到9之外的任意字符任意字符代表任意字符:'.'注意:'[.]'代表一个普通的点(它自己的意思),'\.'也代表一个共同的点(它自己的意思)。以一个字符开始,或以一个或多个字符结束例如:^root表示从这个词开始匹配root$表示匹配以这个词结束^$表示空行元字符表示普通字符或特殊字符\w表示匹配任何单词-类型字符,包括下划线:[A-Za-z0-9_]\W表示匹配不是任何词类型的字符,如:^[A-Za-z0-9_]\b表示词分隔符(即,不在连续的单词中间),如:'\bx'重复字符*表示零次或多次匹配前一个字符或子表达式如'ab*',只重复'\(ab\)*'forb,andrepeatingforab{0,}可以用来表示+来表示一个或多个匹配前一个字符或子表达式如'ab\+',{1,}也可以只表示b重复?表示前一个字符或子表达式的零个或一个匹配项,例如'ab\?',并且只对b重复。{0,1}也可以用来表示具体的重复次数:{n,m}最少重复n次,最多m次如'[0-9]\{n,m\}'任意字符串表示:.*如:'^r.*','m.*c'//不仅匹配4个字符,以m开头,以c结尾,而且中间长度为2个字符或更多注意:'m..c'只匹配4个字符,开头为m,结尾为c坑:贪心匹配,如:'bm.*cb'更精确匹配,如:'bm[a-z]*cb'逻辑正则|或者,如:'bin/\(false\|true\)'哪些字符需要用'\'(),如:'\(\)'{},如:'\{\}'+,如:'\+'?,如:'\?'|,如:'\|'\,如:'\\'例1,匹配4-10位QQ号'^[0-9]\{4,10\}$'2,匹配15位或18位身份证号(支持X)'^[1-9]\([0-9]\{13\}\|[0-9]{16\}\)[0-9xX]$'3、匹配密码(由数字、26位字母和下划线组成)'^w\+$'