17 正则表达式(重点)

正则表达式是一种符号表示法,被用来识别文本模式。在某种程度上,它们与匹配文件和路径名的shell通配符比较相似,但其规模更庞大。

一、grep程序

-i 忽略大小写
-v 不匹配
-c 打印匹配数量而不是文本本身
-l 打印包含匹配项的文件名
-L 相似-l,但只打印不包含匹配项的文件名
-n 在每个匹配行之前打印出其位于文件中的相应行号
-h 对应于多文件搜索,不输出文件名

二、正则表达式的元字符

                ^ $ . [] {} - ? * + () | \ 

(1) .圆点字符,用来匹配任意字符

如果我们在正则表达式中包含它,它将会匹配在此位置的任意一个字符。

[email protected]:~$ grep -h ‘.zip‘ dirlist*.txt   会输出类似binzip2   bzip2 gzip

(2)^插入符号和$美元符号会被看做是锚(定位点)

这意味着正则表达式只有在文本行的开头或末尾被找到时,才算发生一次匹配。

[email protected]:~$ grep -h ‘^zip‘ dirlist*.txt      会输出类似zip zipcloak zipgrep zipinfo,就是说前边被占有,不能匹配
[email protected]:~$ grep -h ‘zip$‘ dirlist*.txt      会输出类似bzip binzip lockzip,就是说后边已被占有,不能匹配上字符

(3)中括号表达式和字符类

通过使用中括号[],我们能够从一个指定的字符集合中匹配一个单个的字符

[email protected]:~$ grep -h ‘[bg]zip‘ dirlist*.txt   会输出bzip bzip2recover gzip2 

如果在正则表示式中的第一个字符(否则不生效)是一个插入字符,则剩余的字符被看作是不会在给定的字符位置出现的字符集合。

[email protected]:~$ grep -h ‘[^bg]zip‘ dirlist*.txt  会输出bunzip2 funzip

(4)传统的字符区域,用-简写

如,在我们的列表中找到每个以大写字母开头的文件,以下边这种方式写比较麻烦

[email protected]:~$ grep -h ‘^[ABCDEFGHIJKLMNOPQRSTUVWXYZ]‘ dirlist*.txt   

我们可以用一个三字符区域来缩写26个字母,如下

[email protected]:~$ grep -h ‘^[A-Z]‘ dirlist*.txt

另外,比较以下两种写法:

[email protected]:~$ grep -h ‘[A-Z]‘ dirlist*.txt   输出包含一个大写字母的文件名
[email protected]:~$ grep -h ‘[-AZ]‘ dirlist*.txt   输出表达式中包含一个连字符或者大写字母A或者大写字母Z的文件名

三、POSIX字符集

UNIX刚开发时,使用ASCII字符,ASCII字符中,前32个字符(数字0-31)是控制码(例如tabs,backspaces,和回车),再有32个字符(32-63)包含打印字符,包含大多数的标点符号和数字0到9;再随后的32个字符(64-95)包含大写字符和一些更多的标点符号。最后的31个字符(96-127)包含小写字母和更过的标点符号。

系统使用这种排序规则的ASCII:  ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

时间: 2024-11-11 04:29:35

17 正则表达式(重点)的相关文章

7.17正则表达式与re模块

正则表达式 这里介绍的只是正则的一点点皮毛,如果要详细了解可以看书<正则指引> 1.re模块与正则表达式之间的关系 (1)正则表达式不是python独有的,它是一门独立的技术 (2)所有的编程语言都可以使用正则 (3)但是如果你想在python中使用,你就必须依赖于re模块 2.正则的作用 正则就是用来筛选字符串中的特定的内容的 3.正则的应用场景 (1)爬虫 (2)数据分析 只要是reg...一般情况下都是跟正则有关 4.正则表达式在线测试工具:http://tool.chinaz.com/

正则表达式语法 2

通过分析别人的表达式可以加深理解. 收集一些常用的正则表达式: /** * 正则表达式:验证用户名 */ public static final String REGEX_USERNAME = "^[a-zA-Z]\\w{5,17}$"; /** * 正则表达式:验证密码 */ public static final String REGEX_PASSWORD = "^[a-zA-Z0-9]{6,16}$"; /** * 正则表达式:验证手机号 */ public

使用正则表达式re_path

设置re_path,导入re_path 1 from django.urls import path,re_path 然后在URlpatterns中配置url 1 from django.contrib import admin 2 from django.urls import path,re_path 3 from . import views 4 5 # 配置url 6 7 urlpatterns = [ 8 path('admin/', admin.site.urls), 9 path(

正则表达式(基础和扩展)

在Linux系统中常见的文件处理工具中grep和sed支持基础正则表达式. grep--正则表达命令,用来过滤文件内容. 选项: -i:查找时不区分大小写字母: -v:反向查找,将不符合查找条件的列都显示出来: -n:将输出的结果显示行号: -A:后面可以追加数字,为after的意思,除了列出该行外,后面的n行也列出来: -B:与"-A"的作用相反,它是除了该行以外,前面的n行也列出来: 示例(在命令执行后的输出结果中,标红的就是查找到的内容): [[email protected]

Java学习的一些基础笔记

classpath.;%java_home%\lib;%java_home%\lib\tools.jar;D:\Java\;java_homeD:\Program Files\Java\jdk1.8.0_51pathC:\Users\BaseKing-Sunie\AppData\Local\Code\bin;%java_home%\bin;%java_home%\jre\bin;D:\adt-bundle-windows-x86_64_20131020\sdk\tools;D:\adt-bund

0003.js字符串操作

通过 + 连接符拼接字符串: var str1 = "hello"; str1 = str1 + " javaScript"; document.write(str1); 或者: var str1 = "hello"; str1 += " javaScript"; document.write(str1); 输出:hello javaScript 要在字符串中添加换行符,需要使用转义字符"\n",但这种方法

grep基本用法

1.作用 Linux系统中的grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 2.格式 命令输出格式为 grep [option] 3.主要参数 [option]主要参数 -c:只输出匹配行的计数 -I:不区分大小写 -n:显示匹配行及行号 --color:打印匹配的颜色 -o:只匹配该行的匹配信息 -v:显示不包含匹配的文本的所有行 -A:表示匹配行后面的几行 -B:表示匹配行前面的几行 4.正则表达式(重点) 配合grep所使用到的正则表达式一般分3中

winform判断输入是否是数字

1 private bool IsNum(string str) 2 { 3 try 4 { 5 foreach (char c in str) 6 { 7 if (char.IsDigit(c)) 8 return true; 9 return false; 10 } 11 } 12 catch (Exception ex) 13 { 14 MessageBox.Show(ex.Message); 15 } 16 return false; 17 } 正则表达式: 1 Regex r=new

《Redis设计与实现》

<Redis设计与实现> 基本信息 作者: 黄健宏 丛书名: 数据库技术丛书 出版社:机械工业出版社 ISBN:9787111464747 上架时间:2014-6-3 出版日期:2014 年6月 开本:16开 页码:1 版次:1-1 所属分类:计算机 > 数据库 > 数据库理论 > 综合 更多关于>>> <Redis设计与实现>   内容简介 书籍 计算机书籍 <redis设计与实现>全面而完整地讲解了redis的内部机制与实现方式,