正则表达式【TLCL】
grep【global regular expression print】 print lines matching a pattern
grep [options] regex [file...]
regex 是指一个正则表达式
grep选项列表:
-i 忽略大小写--ignore-case
-v invert match
-c 打印匹配的数量,而不是文本行本身--count
-l 打印包含匹配项的文件名,而不是文本行本身 --files-with-matches
-L 相似于-l 选项,但是只是打印不包含匹配项的文件名--files-without-match
-n 打印相应的行号--line-number
-h 应用于多文件搜索,不输出文件名--no-filename
元义字符和原字符
^ $ . [ ] { } - ? * + ( ) | \
注意:正如我们所见到的,当 shell 执行展开的时候,许多正则表达式元字符,也是对 shell 有特殊 含义的字符。把元字符用引号引起来至关重要, 这样可以阻止 shell 试图展开它们。
. 匹配在此位置的任意一个字符
^ 锚点,行开头
$ 锚点,行结尾
[***] 字符集合,元字符被放置到中括号里面后会失去了它们的特殊含义。^表示否定,-表示范围。
注意:
- 要包含-:可将-放在开头[-***]
- 字典顺序和ASCII 顺序不同,[A-Z]不总是工作【查看
LANG变量】
- POSIX字符集
[:alnum:] 字符数字字符,在ASCII中等价于[A-Za-z0-9]
[:word:] 增加了下划线
[:alpha:] 字母字符
[:blank:] 包含空格和tab
[:cntrl:] ASCII的控制码,0-31,127
[:digit:] 0-9
[:graph:] 可视字符,33-126
[:lower:] 小写字母
[:punct:] 标点符号字符
[:print:] 可打印字符,在[:graph:]中的所有字符,再加上空格字符。
[:space:] 在 ASCII 中, 等价于[ \t\r\n\v\f]
[:upper:] 大写字母
[:xdigit:] 表示十六进制数字的字符
locale命令,查看locale操作。
POSIX基本的 Vs.扩展的正则表达式
BRE:
可以识别 ^ $ . [ ] *
字符“(”,“)”,“{”,和 “}”用反斜杠转义后,被看作是元字符
ERE:
添加了 ( ) { } ? + |
在任意元字符之前加上反斜杠会导致其被看作是一个文本字符
egrep 【grep -E】
echo "AAA" | grep -E 'AAA|BBB|CCC'
为了把 alternation 和其它正则表达式元素结合起来,我们可以使用()来分离 alternation。
grep -Eh '^(bz|gz|zip)' dirlist*.txt
限定符
? 匹配零个或者一个元素
eg:^\(?[0-9][0-9][0-9]\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$
通常圆括号都是元字符(在 ERE 中),所以我们在圆括号之前加上了反斜杠,使它们成为文本字符
* 匹配零个或多个元素
[[:upper:]][[:upper:][:lower:] ]*.
+ 匹配一个或多个元素
^([[:alpha:]]+ ?)+$
{} 匹配特定个数的元素
{n} n次, {n,m} n到m次, {n,}大于等于n次, {,m}小于等于m次
find
find . -regex '.*[^-\_./0-9a-zA-Z].*'
注意:
当某一行包含的字符串匹配上了一个表达式的时候,grep 命令会打印出这一行
find 命令要求路径名精确地匹配这个正则表达式
locate查找文件
locate 程序支持基本的(--regexp 选项)和扩展的(--regex 选项)正则表达式
在less和vim中查找文本
vim 支持基本的正则表达式
在扩展表达式中,许多被认为是元字符的字符在基本的表达式中被看作是文本字符,
只有用反斜杠把它们转义之后,它们才被看作是元字符。
正则表达式【TLCL】的更多相关文章
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- Python高手之路【五】python基础之正则表达式
下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...
- C# 正则表达式大全
文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...
- C#基础篇 - 正则表达式入门
1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- 【JS基础】正则表达式
正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...
- JavaScript 正则表达式语法
定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...
- [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)
数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...
随机推荐
- 【BZOJ4385】[POI2015]Wilcze doły 单调栈+双指针法
[BZOJ4385][POI2015]Wilcze doły Description 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0.请找到最长的一段 ...
- SQSERVER--函数、开窗函数,-特殊的内容 (for xml path )
1.STUFF SQL Server之深入理解STUFF sql stuff函数用于删除指定长度的字符,并可以在制定的起点处插入另一组字符.sql stuff函数中如果开始位置或长度值是负数,或者如果 ...
- css中的clear:both,display:flex;
介绍两者一起讨论的原因: 在明天就国庆的日子里陪着程序员的只有代码,啤酒,还有音乐,然后就是灯光下默默陪伴自己的影子.好了,不矫情了. -------------------------------- ...
- JavaScript四种数值取整方法
一.Math.trunc() 1.定义 Math.trunc()方法去除数字的小数部分,保留整数部分. 2.语法 Math.trunc(value) 3.示例 console.log(Math.tru ...
- Java 其他对象的 API
System 类 (java.lang 包下) 该类中的方法和属性都是静态的. 常见方法 // 1, 获取当前时间的毫秒值 long currentTimeMillis(); // 2, 获取系统的属 ...
- 编译安装cmake3
编译安装cmake3 ubuntu 14 的系统默认安装的是cmake2.7,apt-get upgrade之后也还是cmake2.7,而很多软件如今需要3及以上的版本来进行cmake编译(如caff ...
- 《Redis官方文档》用Redis构建分布式锁
用Redis构建分布式锁 在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段. 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简 ...
- 神经网络中的数据预处理方法 Data Preprocessing
0.Principal component analysis (PCA) Principal component analysis (PCA) is a statistical procedure t ...
- python代码编辑器PyCharm快捷键补充
个人觉得特别有用的: 替换:Ctrl+R 删除当前行 CTRY Y: 复制当前行:Ctrl+D ALT F7: 查找哪些地方使用了选中的方法. ALT UP: 移到上一个方法 ALT DOWN: 移到 ...
- Part01、memcache 缓存
Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy 目录 一. Memcached Memcached安装和基本使用 Python操作Memcached2.1 se ...