第十八讲——正则表达式 本文共有2616个字,关键词: 正则表达式:pattern(模式),由字符和正则表达式的元字符组合起来过滤文本的过滤条件。 正则表达式分为两类: 基本正则表达式 Basic REGEXP 扩展的正则表达式 Extend REGEXP 它们所支持的元字符有一部分是不一样的,甚至相同的元字符意义也不尽相同。 大多数的文本类处理命令都支持正则表达式,而且正则表达式是使得计算机变得智能化的一个重要途径。 掌握正则表达式对我们来讲,是我么处理文本的基本常识 默认情况下,我们的正则表达式工作在贪婪模式下。 基本正则表达式(basic REGEXP): 字符匹配: . (点)任意的单个字符 [] (中括号)指定范围内的任意单个字符 [^](中括号内部加上托字符)指定范围外的任意单个字符 次数匹配: (*) (星号)匹配前面的字符任意多次(零次或者多次) \? (转义后的问号)匹配前面的字符零次或一次 \{m,n\} (转义后的大括号) 匹配前面的字符至少m次,至多n次 .* 表示任意长度的任意字符 锚定: ^ 锚定行首(之后的字符) $ 锚定行尾(之前的字符) \<,\b 锚定单词首部 \>,\b 锚定单词尾部 \( \) 转义后的小括号用于实现分组(后向引用) 如sed中的sed ‘s/\(.*\):bash$/\1/g’ 实现后向引用,\1\2\3等等。 扩展正则表达式: 字符匹配: . 任意单个字符 [] 指定范围内的任意单个字符 [ ^] 指定范围外的任意单个字符 次数匹配: (*)匹配前面的字符任意次 ? 匹配其前面的字符零次或者一次 + 匹配前面的字符至少一次 () 括号,实现真正意义上的分组,实现后向引用\1,\2,\3 {m,n} 匹配其前的字符至少m次,至多n次 \<,\b 锚定行首(之前的字符) \>,\b 锚定行尾(之后的字符) $ 锚定行尾 ^ 锚定行首 | 或者 or c|cat 匹配c或者cat 例如:查找1-255之间的整数 分别锚定 egrep \<[1-9]\>|\<[1-9][0-9]\>|\<[1[0-9][0-9]\>|\<[2[0-4][0-9]\>|\<25[0-5]\>’ /boot/grub/grub.conf 整体锚定 grep –E ‘\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>’ /boot/grub/grub.conf grep默认仅支持基本正则表达式定义的模式来过滤文本的命令 -i 忽略大小写 -v 输出不匹配的行 -o 显示匹配的字符串 --color 支持匹配字符串高亮显示 -E 支持扩展正则表达式 -A #显示匹配行下的#行 -B #显示匹配行上的#行 -C #显示匹配行上下的#行 context 上下文 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 几人行 (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 给自己讲linux 2016-12-18 评论 1510 次浏览