标签:字符 ab 匹配 正则表达式 重复 代表 Linux 任意
Linux 的正则表达式
重要性
我们通过sed或awk工具可以轻松愉快的对一堆文本分析、对数据进行处理、服务器报错日志的分析、服务器用户访问日志统计分析等。
但是要玩耍好sed和awk工具,正则表达式是基础,不得不掌握。
单个字符
特定字符
如'1'、'a'、'A'
范围字符
数字字符:[0-9],代表0到9数字中的任意一个
小写字符:[a-z],代表a到z字母中的任意一个
大写字符:[A-Z],代表A到Z字母中的任意一个
特殊符号:[,._]
取反:[^0-9],代表除0到9数字外的任意一个字符
任意字符
代表任意字符:'.'
注意:'[.]',代表普通的点(本身的含义),'\.'也是代表普通的点(本身的含义)
边界字符
头尾字符,即以某个或多个字符开头,或者是以某个或多个字符结尾
例如: ^root 代表以这个单词开始匹配 root$ 代表以这个单词结尾匹配 ^$ 代表空行 复制代码
元字符
代表普通字符或特殊字符
\w 代表匹配任何字类字符,包括下划线:[A-Za-z0-9_] \W 代表匹配非任何字类字符,如:^[A-Za-z0-9_] \b 代表单词的分割符(即不在连续的单词中间),如:'\bx' 复制代码
重复字符
* 代表零次或者多次匹配前面的字符或者子表达式 如 'ab*' ,只对b重复 '\(ab\)*' ,对ab重复 也可用{0,}表示 + 代表一次或者多次匹配前面的字符或者子表达式 如 'ab\+',只对b重复 也可用{1,}表示 ?代表零次或者一次匹配前边的字符或子表达式 如 '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.*c\b'
更加精确的匹配,如:'\bm[a-z]*c\b'
逻辑正则
| 或,如:'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\+$'
标签:字符,ab,匹配,正则表达式,重复,代表,Linux,任意 来源: https://blog.51cto.com/u_15169172/2710113
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。