正则表达式

正则表达式

余生长醉 提交于 2020-02-07 08:32:55
正则表达式(regular expression) 1.字符 字符 含义 普通字符 占大多数,代表自身 元字符 例如.*等等,代表特殊的含义,要代表自身时要用\转义 2.分隔符 以下分隔符用//表示无具体意义 3.简单字符串 简单字符串 正则表达式 匹配字符串 示例 /ring/ ring ring,spring /or not/ or not or not,poor nothing 4.句点/./ 代表任意一个字符 re 匹配字符串 示例 /.alk/ 任意一个字符后加上alk talk,will talk 5.星号/*/ 星号跟在某个字符(串)(作用于字符串的话要用小括号括起来)后面则,代表该字符(串)可以出现零次或多次. re 匹配字符串 示例 /([^)(]*)/ 括号里面不包含括号的字符串 (this) 6.?与+ 默认搜索模式为贪婪模式,即最大长度匹配. 7.括号/()/ 表示一个子正则表达式,一般用于限制特殊字符的作用范围(也就是说不表示作用范围时,他就是小括号本身), re 匹配字符串 示例 /(12)*/ 出现一次或者零次的12 12,1212 8.方括号/[]/ 代表一个字符类,与方括号内条件匹配的单个字符即视为方括号的整体内容. 1.如果方括号内第一个字符为脱字符^则表示不时方括号里面的字符 2.可以用连字符-确定范围 3.方括号内的元字符失去特殊意义

正则表达式全集

帅比萌擦擦* 提交于 2020-02-07 07:03:07
正则表达式全集 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“ n ”匹配字符“ n ”。“ \n ”匹配一个换行符。串行“ \\ ”匹配“ \ ”而“ \( ”则匹配“ ( ”。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“ \n ”或“ \r ”之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“ \n ”或“ \r ”之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo*能匹配“ z ”以及“ zoo ”。*等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,“ zo+ ”能匹配“ zo ”以及“ zoo ”,但不能匹配“ z ”。+等价于{1,}。 ? 匹配前面的子表达式零次或一次。例如,“ do(es)? ”可以匹配“ does ”或“ does ”中的“ do ”。?等价于{0,1}。 { n } n 是一个非负整数。匹配确定的 n 次。例如,“ o{2} ”不能匹配“ Bob ”中的“ o ”,但是能匹配“ food ”中的两个o。 { n ,} n 是一个非负整数。至少匹配 n 次。例如,“ o{2,} ”不能匹配“ Bob ”中的“ o ”,但能匹配“ foooood ”中的所有o。“ o

正则表达式

自作多情 提交于 2020-02-07 06:54:04
表达式全集 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。串行“\”匹配“”而“(”则匹配“(”。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo 能匹配“z”以及“zoo”。 等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。 ? 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等价于{0,1}。 {n} n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。 {n,} n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。 {n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1

linux 正则表达式

匆匆过客 提交于 2020-02-07 06:47:27
正则表达式 标签(空格分隔):Linux实战教学笔记 --- 更多资料点我查看 第1章 什么是正则表达式 正则表达式就是为了处理大量的文本|字符串而定义的一套规则和方法 通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串。Linux正则表达式一般以行为单位处理。 简单说 为处理大量文本|字符串而定义的一套规则和方法 以行为单位出来,一次处理一行 正则表达式是一种描述一组字符串的模式,类似数字表达式,通过各种操作符组成更小的表达式 第2章 为何使用正则表达式 linux运维工作,大量过滤日志工作,化繁为简。 简单,高效。 正则表达式高级工具;三剑客都支持 第3章 容易混淆的两个注意事项 正则表达式应用非常广泛,存在于各种语言中,php perl grep sed awk 支持。ls * 通配符 但现在学的是Linux中的正则表达式,最常应用正则表达式的命令是grep(egrep),sed,awk。 正则表达式和通配符有本质区别 正则表达式用来找:【文件】内容,文本,字符串。一般只有三剑客支持 通配符用来找:文件名,普通命令都支持 第4章 正则表达式使用注意事项 linux正则表达式以行为单位处理字符串 便于区别过滤出来的字符串,一定配合grep/egrep命令学习。 注意字符集,exportLC_All=C:无论何时,做何事都要注意字符集 第5章

正则表达式规则

末鹿安然 提交于 2020-02-07 05:00:12
正则表达式使用详解   简介   简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。其作用如下:   测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。   替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。   根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。   基本语法   在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。   正则表达式的形式一般如下:   /love/  其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。   较为常用的元字符包括: “+”, “*”,以及 “?”。   “+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。   “*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。   “?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。

. 正则表达式规则

我与影子孤独终老i 提交于 2020-02-07 03:57:11
http://blog.csdn.net/zaifendou/article/details/5746988 1. 正则表达式规则 1.1 普通字符 字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。 举例1:表达式 "c",在匹配字符串 "abcde" 时 ,匹配结果是:成功;匹配到的内容是:"c";匹配到的位置是:开始于2,结束于3。(注:下标从0开始还是从1开始,因当前编程语言的不同而可能不同) 举例2:表达式 "bcd",在匹配字符串 "abcde" 时 ,匹配结果是:成功;匹配到的内容是:"bcd";匹配到的位置是:开始于1,结束于4。 1.2 简单的转义字符 一些不便书写的字符,采用在前面加 "/" 的方法。这些字符其实我们都已经熟知了。 表达式 可匹配 /r, /n 代表回车和换行符 /t 制表符 // 代表 "/" 本身 还有其他一些在后边章节中有特殊用处的标点符号,在前面加 "/" 后,就代表该符号本身。比如:^, $ 都有特殊意义,如果要想匹配字符串中 "^" 和 "$" 字符,则表达式就需要写成 "/^" 和 "/$"。 表达式 可匹配 /^ 匹配 ^ 符号本身 /$ 匹配 $ 符号本身 /. 匹配小数点(.)本身 这些转义字符的匹配方法与 "普通字符"

C#正则表达式语法规则详解

拈花ヽ惹草 提交于 2020-02-07 03:49:41
正则表达式通常包含字母文本(Literaltext)和元字符(metacharacter) 字母文本指的是普通文本如"abcde"可匹配字符串中任何包含"abcde"的字符串。 元字符则更加灵活运用通用的表达式匹配所有符合此表达式规律的字符串。 C#正则表达式语法一、 匹配单个字符 []——从中选择一个字符匹配 中间支持的类型:单词字符([ae])、非单词字符([!?,;@#$*])、字母范围([A-Z])、数字范围([0]) eg.正则表达式[ae]ffect 可匹配字符串 affect,effect (此例中"[ae]"为元字符,"ffect"为字母文本) 注意: 1.要在字符类中匹配连字符,那么把连字符号作为第一个字符列出即可。 2.可以在单个正则表达式中包含多个字符类。 eg.[01][0-9]:[0-5][0-9][ap]m可以用来匹配如12:59pm格式的所有时间 ^——排除某些字符(在[]中表此意,还可表示字符串的开头) eg.正则表达式m[^a]t 可匹配字符串 不可匹配字符串 met,mit,m&t……mat C#正则表达式语法二、 匹配特殊字符 可以使用的特殊字符: \t——匹配制表符 \r——匹配硬回车符 \f——匹配换页符 \n——匹配换行符 描述表示字符类的元字符: .——匹配任何除了\n以外的字符(或者在单行模式中的任何字符) \w——匹配任何单词字符

python正则表达式出现AttributeError: 'NoneType' object has no attribute 'group'提示

大兔子大兔子 提交于 2020-02-07 02:59:52
环境:ubuntu 语言:python 问题:正则表达式出现AttributeError: 'NoneType' object has no attribute 'group'提示 原因:re.match()由于没有匹配到元素,之后又调用了group()方法造成的 分析:很可能是由于正则表达式出错造成的,尤其是使用标签时容易出错 解决:在使用正则表达式时使用try捕获错误,一旦发现错误,立马反馈,同时使用if增强检测,当然也可以不使用try捕获,直接使用if判断,请参考下方代码 代码: 下面的正则表达式故意写错,正确的写法:r"^<(?P<p1>\w*)><(?P<p2>\w*)>.*</(?P=p2)></(?P=p1)>$" import re file_content = "<body><h1>hahahaha</h1></body>" judge_rule = r"^<(?P<p1>\w*)><(?P<p2>\w*)>.*</(?P=p1)></(?P=p1)>$" # 特别注意这一条正则表达式 try: temp = re.match(judge_rule, file_content) if temp is None: # 进一步确定错误类型 print("match()的返回值为空") print(temp.group()) except AttributeError:

正则表达式(grep,sed)

只愿长相守 提交于 2020-02-07 02:11:12
正则表达式 元字符 .* 任意长度的任意字符 尽可能多匹配 [] 匹配指定范围内的任意单个字符,示例:[wang] [0-9] [a-z] [a-zA-Z] [^] 匹配指定范围外的任意单个字符,示例:[^wang] [:blank:] 空白字符(空格和制表符) [:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广) [:print:] 可打印字符,标点符号 + 匹配其前面的字符至少1次 {n} 匹配前面的字符n次 {m,n} 匹配前面的字符至少m次,至多n次 位置锚定: ^ 行首锚定 $ 行尾锚定 < 词首锚定 > 词尾锚定 ^$ 空行 分组: ( ) 多个字符捆绑在一起 \1引用 后向引用:引用前面匹配到的字符本身 或者: | 扩展正则表达式: 不加\ grep grep行过滤器 格式:grep ^root /etc/passwd 选项: -v 排除,取反 -i 忽略大小写 -o 匹配字符本身 -E 扩展正则表达式 -A -B -C 匹配后5行,前5行,前后5行 例题 显示/proc/meminfo文件中以大小s开头的行(要求:使用两种方法) cat /proc/meminfo | grep '^S\|^s' cat /proc/meminfo | grep -i '^S' 显示/etc/passwd文件中不以/bin/bash结尾的行 cat /etc

Linux课堂练习的技术总结Ⅰ

两盒软妹~` 提交于 2020-02-07 01:02:41
开学第一个月讲的知识点... 刚哥加油!! 目录 基础指令 正则表达式 常用的文本文件提取命令 常用的文本文件分析命令 常用的文本文件处理命令 常用的系统信息显示命令 常用的资源显示命令 常用的用户相关显示命令 常用的网络信息显示命令 apt-get 基础指令 1.pwd #功能:查看当前所在目录 #返回的是绝对路径 [wmn@localhost ~]$ pwd 2.ls #功能:显示文件或目录信息 #格式: ls [选项] [目录名or文件名] [wmn@localhost ~]$ ls 3.touch #功能:生成新的空文件或更改现有文件的时间 #若文件不存在,系统会建立一个文件 #创建一个名为 file1的文件,只创建就Ok,不会进入文件里面去编辑 touch file1 4.mkdir #创建一个名为 dir1的文件夹 mkdir dir1 5.vi #创建一个名为 file2的文件,会进入文件里面去编辑 vi file2 #编辑好文件退出的方法是,连续按两下Esc按键,再shift+:,再输入wq ,再回车即可 6.cd #进入一个目录,cd是一个命令 #绝对路径,以"/"开头,/home/wmn是目录 cd /home/wmn #相对路径,不以"/"开头 cd subdir1/subsubdir1 #返回到上一级目录 cd .. 7.find 8.cp #功能