正则表达式详解
2016-06-06 22:47
483 查看
正则表达式是一种符号表示法,被用来识别文本中的模式。
grep
grep [options] regex [file…]
grep选项列表
例子
元字符和文本
原义字符:匹配本身 (例如bzip)
元字符:^ $ . [ ] { } - ? * + ( ) | \
所有非元字符都被认为是原义字符
POSIX 字符集
先看两个例子(查找以大写字母开头的文件)
明显可以看出第二例子有问题,它含有以小写字母开头的文件!
原因在于ASCII中字母的排列规则是
而为了满足不在 U.S.英语范围内的字符,扩充了ASCII,使用了添加了字符(128-255)。POSIX 中的 locale ,可以选择所需的字符集,echo $LANG 查看当前字符集一般为en_US.UTF-8。它使用字典排列顺序而不是 ASCII 顺序。
export LANG=POSIX可以使系统为它的字符集使用 U.S.英语,即ASCII
POSIX 字符集
grep
grep [options] regex [file…]
grep选项列表
例子
ls /bin > dirlist-bin.txt ls /usr/bin > dirlist-usr-bin.txt ls /sbin > dirlist-sbin.txt ls /usr/sbin > dirlist-usr-sbin.txt ls dirlist*.txt dirlist-bin.txt dirlist-sbin.txt dirlist-usr-sbin.txt dirlist-usr-bin.txt 在所有列出的文件中搜索字符串 bzip grep bzip dirlist*.txt dirlist-bin.txt:bzip2 dirlist-bin.txt:bzip2recover -l 选项列出包含匹配模式的文件 grep -l bzip dirlist*.txt dirlist-bin.txt -L选项列出包含匹配模式的文件 grep -L bzip dirlist*.txt dirlist-sbin.txt dirlist-usr-bin.txt dirlist-usr-sbin.txt
元字符和文本
原义字符:匹配本身 (例如bzip)
元字符:^ $ . [ ] { } - ? * + ( ) | \
所有非元字符都被认为是原义字符
. 被用来匹配单个任意字符 ^和$ 被看作锚点,分别表示开头和结尾 [] 指定的字符集合中匹配一个单个的字符 []中的第一个字符是^ 表示不匹配字符集合中的字符 [A-Za-z0-9] [A-Z] [a-z] [0-9] 表示字符区域 + 匹配1个或多个 * 匹配0个或多个 ? 匹配0个或1个 {} 匹配特定个数的元素 如:{m,n} 表示m至n个 | 则是或意思.如:ps(a|b),则匹配psa或者psb \ 是转义字符
POSIX 字符集
先看两个例子(查找以大写字母开头的文件)
ls /usr/sbin/[ABCDEFGHIJKLMNOPQRSTUVWXYZ]* /usr/sbin/MAKEFLOPPIES /usr/sbin/NetworkManagerDispatcher /usr/sbin/NetworkManager ls /usr/sbin/[A-Z]* /usr/sbin/biosdecode /usr/sbin/chat /usr/sbin/chgpasswd /usr/sbin/chpasswd /usr/sbin/chroot /usr/sbin/cleanup-info /usr/sbin/complain /usr/sbin/console-kit-daemon
明显可以看出第二例子有问题,它含有以小写字母开头的文件!
原因在于ASCII中字母的排列规则是
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
而为了满足不在 U.S.英语范围内的字符,扩充了ASCII,使用了添加了字符(128-255)。POSIX 中的 locale ,可以选择所需的字符集,echo $LANG 查看当前字符集一般为en_US.UTF-8。它使用字典排列顺序而不是 ASCII 顺序。
aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
export LANG=POSIX可以使系统为它的字符集使用 U.S.英语,即ASCII
POSIX 字符集
相关文章推荐
- linux下操作redis数据库的常用命令
- 编程0基础,自学成才
- 构建之法阅读笔记05
- PAT乙级—1050. 螺旋矩阵(25)-native
- UIview 和原生的交互处理
- rotate-image
- 《java入门第一季》之集合框架TreeSet存储元素自然排序以及图解
- VBS判断本地账户密码过期邮件提醒
- ViewPager的自带导航
- HttpClient4.X发送带参数的Get请求
- 二分查找 —— 从三分支到二分支
- 《java入门第一季》之集合框架TreeSet存储元素自然排序以及图解
- tweenMax学习笔记
- 《Linux课本》读书笔记 第十七章 模块
- 拉倒服务器
- java集合
- 如何提高开发的效率,让老板不知所措的给你发工资
- [Leetcode]171. Excel Sheet Column Number
- 联想公司的 logo 设计
- 继承 多态