文章目录
一、正则表达式是什么?
正则表达式主要是指在文档中过滤和处理数据的一种方法。
二、基本正则
基本正则符号列表
| 正则符号 | 含义 |
|---|---|
| abc | 匹配abc |
| ^ | 匹配开头 |
| $ | 匹配结尾 |
| [集合] | 匹配集合中任意单个字符 |
| [^集合] | 对集合取反 |
| . | 匹配任意单个字符 |
| * | 匹配前一个字符任意次(含0次) |
| .* | 匹配任意 |
| \ {n,m} | 匹配前一个字符n-m次 |
| \ {n,} | 匹配前一个字符n+次 |
| \ {n} | 匹配前一个字符n次 |
基本正则的使用
grep 'abc' python.txt #查询文件中包含abc的行
grep '^abc' python.txt #查询文件中以abc开头的行
grep "[^abc]" python.txt #查找不包含a或者b或者c的其他内容
grep "[abc]" python.txt #查找包含a或者b或者c的行
grep r.*t python.txt #查找以r开头以t结尾的
grep "[0-9]\{3,4\}" python.txt #查找包含数字3-4次的
三、扩展正则
扩展正则符号列表
| 正则符号 | 含义 |
|---|---|
| + | 匹配前面的字符至少1次 |
| ? | 匹配前面的字符0 or 1次 |
| () | 组合与保留 |
| I | 或者 |
| {n,m} | 匹配前面的字符n-m次 |
| {n, } | 匹配前面的字符至少n次 |
| {n } | 匹配前面的字符n次 |
扩展正则的使用
grep -E "0{2,3}" python.txt #查找0出现2-3次
grep -E "[a-z]+" python.txt #查找a-z等字母至少出现一次
grep -E "s?bin" python.txt #查找sbin或者bin(?匹配前面的s字符0-1次)
grep -E "(rot|dae)" python.txt #查找rot或者dae
四、Perl 兼容正则
Perl 兼容正则符号列表
| 正则符号 | 含义 |
|---|---|
| \b | 匹配单词边界 |
| \w | 匹配字符数字下划线 |
| \W | 与\w相反 |
| \s | 匹配空白 |
| \d | 匹配数字 |
| \d+ | 匹配多个数字 |
| \D | 匹配非数字 |
Perl 兼容正则的使用
grep -P 'abc' python.txt #匹配只要包含abc的行
grep -P '\babc\b' python.txt #\b单词边界,a前面不能有内容,c后面也不能有内容,只匹配abc
grep -P "\w" python.txt #查找字母数字下划线
grep -P "\W" python.txt #查找非字母数字下划线
grep -P "\s" python.txt #查找空格、空白
五、正则中grep的相关用法
grep 语法格式: grep [选项] 匹配模式 [文件]…
常用选项:
-i 忽略大小写
-v 取反匹配
-w 匹配单词,和兼容正则里面的\b 是一样的
-q 静默匹配,(无论结果是否匹配成功)不将结果显示在屏幕
感谢大家浏览,喜欢的可以评论关注一下。
1908

被折叠的 条评论
为什么被折叠?



