正则表达式

正则表达式

徘徊边缘 提交于 2020-02-01 01:18:43
正则表达式 1. 概念 正则表达式就是查找复杂规则的字符串的需要,用来描述这些规则的代码 2. 常用的元字符 . 匹配除了换行符以外的任意字符 \w 匹配字母或者数字或者下划线或者汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或者结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 \ 转义符 3. 分支条件 使用 | 把规则分隔开 4. 分组 使用小括号来指定子表达式 5. 取反义 \W 匹配任意不是字母,数字,下划线,汉字的字符 \S 匹配任意不是空白的字符 \D 匹配任意不是数字的字符 \B 匹配不是单词开头或结束的位置 [^x] 匹配除了x以外的任意字符 [^aeiou] 匹配除了aeiou的任意字符 6. 后向引用 使用小括号指定一个zi2表达式后,匹配这个子表达式的文本,可以在表达式或其他程序中做进一步的处理。 (exp) 匹配exp,并且捕获文本到自动命名的组里 (?exp) 匹配exp,并捕获文本到名称为name的组里 (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号 (?=exp) 匹配exp前面的位置 (?<=exp)匹配exp后面的位置 (?!exp) 匹配后面跟的不是exp的位置 (?<!exp) 匹配前面不是exp的位置 (?#comment) 提供注释供阅读 7. 贪婪和慵懒 贪婪匹配:匹配尽可能多的字符 懒惰匹配

Python3 正则表达式 re 模块的使用 - 学习笔记

半世苍凉 提交于 2020-01-31 20:46:59
re 模块的引入 re 模块的使用 re.compile() re.match()与re.search() re.match re.search() 区别 re.findall()与re.finditer() re.findall() re.finditer() 区别 re.sub()与re.subn() re.sub() re.subn() re.split() 正则表达式修饰符(匹配模式) re 模块的引入 Python 自1.5版本起增加了 re 模块,它提供 Perl 风格的正则表达式模式。 re 模块使 Python 语言拥有全部的正则表达式功能。 re 模块的使用 参数含义 pattern: 字符串形式的正则表达式 string: 要匹配的字符串 flags: 可选,表示匹配模式 pos:可选,字符串中开始搜索的位置索引 endpos:可选,endpos 限定了字符串搜索的结束 不填pos endpos默认扫描全部 re.compile() compile(pattern, flags=0) 将正则表达式的样式编译为一个 正则表达式对象 (正则对象) 可以使用正则对象调用 match() 等函数 >>> test = '1 one 2 two 3 three' >>> a=re.compile(r'\d+') >>> b=a.match(test) >>> print

python学习笔记——正则表达式和多线程

纵饮孤独 提交于 2020-01-31 18:47:06
正则表达式 30分钟正则表达式 python中对于正则表达式使用re模块处理 因为python本身也用 \ 转义,所以可以在字符串前使用 r 前缀,这样就不用考虑转义问题了。 match() match()方法判断是否匹配成功,然会一个match()对象,否则返回None。 import re test = '字符串' if re.match(r'正则表达式',test): print('ok') else: print('failed') split() re模块中的split([正则表达式],[字符串])方法可以使用正则表达式分割字符串,返回值为分割后的字符串字典。 ()括号分组 使用 () 可以提取分组, ^(\d{3})-(\d{3,8})$ 前后为两个组,可以直接从匹配后的字符串中提取出两部分内容。 如果正则表达式中定义了组,那么就可以在match()对象中使用group()方法提取字符串。 group(0)为源字符串,group(1)为第一个子串,group(2)为第二个子串。 compile() 如果一个正则表达式需要重复使用,那么应该预编译该正则表达式。 re.compile([正则表达式]) 方法用于预编译正则表达式。 多线程 任何进程默认都会启动一个线程,这个线程被称为主线程,主线程又可以启动新的线程。 threading模块中的 current_thread(

Python3 正则表达式(1)——match&&seach的区别

醉酒当歌 提交于 2020-01-31 17:41:54
1、首先看match和search的区别,每个print对应的输出在注释中标明。 import re ''' 在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash "\" 。 "\n" 在raw string中, 是两个字符,"\"和"n",而不会转意为换行符。由于正则表达式和"\"会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上'r'。 ''' ''' re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None; 而re.search匹配整个字符串,直到找到一个匹配。 ''' email = 'Cedar_Sia@test1.com' p1 = r '@test1\.com' p2 = r 'Cedar' print ( 'p1' , p1 ) # p1 @test1\.com print ( 'p2' , p2 ) # p2 Cedar m = re . search ( p1 , email ) print ( "search" , m ) print ( "search.group:" , m . group ( ) ) print ( "search.groups:" , m . groups ( ) ) # print ( "search

查找命令之find 与 grep

痞子三分冷 提交于 2020-01-31 17:40:58
一、Find(查找文件或目录) 1.在/var/lib目录下查找所有文件其所有者是root用户的文件。 find /var/lib -user root 2.查找家目录其所有者不是linux用户,并用长格式显示(如ls –l 的显示结果)。 把前面的结果当成是后面的命令中的 { } 的输入,然后执行并输出到屏幕 sudo find ~ ! -user linux -exec ls -l { } \ ; 2.1、查找文件然后复制到/tmp目录下 find /var/lib -user root -exec cp -r { } /tmp \ ; 3.查找某一目录下名字是*.txt的文件 find /home -name "*.txt" -type f 3.1、查找某一目录下名字是*.txt的目录 find /home -name "*.txt" -type d 4.当前目录查找30天以前的文件 find . -name "*.txt" -type f mtime +30 4.14.当前目录查找1天以内的文件 find . -name "*.txt" -type f mtime -1 5.查找大于5M的文件 M是大写,k是小写,才能识别 find . -name "*.txt" -type f mtime -1 -size 5M 6.查找权限是644的文件 文件默认权限666,目录777

Python正则表达式就是这么简单【新手必学】

馋奶兔 提交于 2020-01-31 14:41:57
一前言 本篇文章带大家快速入门正则表达式的使用,正则表达式的规则不仅适用python语言,基本大多数编程语言都适用,在日常使用中极为广泛,读者们有必要学好正则表达式。看完这篇文章,读者们要理解什么是正则表达式,正则表达式的规则,常见的正则表达式示例,如何在python中使用函数进行正则表达式操作; 二 正则表达式的概念 正则表达式是指在一串字符串中使用特殊的模式匹配获得子串,我们可以对获得的子串进行提取,替换等操作; 举个例子zszxz666 这个字符串,现在知识追寻者想要获得子串zszxz, 则需要经过一个模式匹配后获得子串,在正则表达式中这个模式可以很多种格式,知识追寻者在这边使用最简单的模式 [a-z]*,然后经过python正则表达式匹配函数就可以获得子串zszxz;这种方式比平时的字符串函数操作更加简便,适用范围广泛; ps:另外很多人在学习Python的过程中,往往因为没有好的教程或者没人指导从而导致自己容易放弃,为此我建了个Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题多跟里面的人交流,都会解决哦! 三 常用的正则匹配模式 常用的正则表达式模式如下,如果对这些模式有疑惑的可以参照 正则表达式手册 ;手册中还有日常使用的正则示例,比如用户名,密码,邮箱,URL 的匹配模式等; 模式 含义 ^

python之正则表达式

牧云@^-^@ 提交于 2020-01-31 10:02:37
正则表达式主要内容 1.正则表达式基础 总体简介 正则表达式的常用符号 补充 2.python中re模块 1.使用方法 2.相关函数 1.正则表达式基础 总体简介 1.正则表达式是用于处理字符串的强大工具,能帮助开发人员检查一个字符串是否与某种模式匹配。 正则表达式的常用符号 1.一般字符 正则表达式的一般字符有3个,如表所示 注:1.一般字符是匹配单个字符;2.注意字符集的用法,是从中选一个字符; 2.预定义字符 注意:大写字母表示意思“非”; 3.数量词及边界匹配 注意: 1.在数量词中,匹配时,字母的种类要有,只是数量词前的一个字母出现的次数大于等于0; 2.在爬虫中常使用(. ?),其中"()“表示括号的内容作为返回的结果,”. ?“表示匹配任意的字符,例如: 3.数量词的贪婪与非贪婪模式 正则表达式通常用于在 文本中查找匹配的字符串 。 Python里数量词默认是贪婪的 (在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符; 非贪婪 的则相反, 总是尝试匹配尽可能少的字符 。例如:正则表达式"ab*“如果用于查找"abbbc”,将找到"abbb”。而如果使用非贪婪的数量词"ab*?",将找到"a"。 4.逻辑、分组和特殊构造 补充 1.关于区分反斜杠问题 正则表达式里使用"“作为转义字符,这就可能造成反斜杠困扰。 假如你需要匹配文本中的字符”"

Vim查找替换及正则表达式的使用

自作多情 提交于 2020-01-31 08:30:38
转载,原文地址如下 http://tanqisen.github.io/blog/2013/01/13/vim-search-replace-regex/ 简单替换表达式 :[range]s/from/to/[flags] range :搜索范围,如果没有指定范围,则作用于但前行。 :1,10s/from/to/ 表示在第1到第10行(包含第1,第10行)之间搜索替换; :10s/from/to/ 表示只在第10行搜索替换; :%s/from/to/ 表示在所有行中搜索替换; 1,$s/from/to/ 同上。 flags 有如下四个选项: c confirm,每次替换前询问; e error, 不显示错误; g globle,不询问,整行替换。如果不加 g 选项,则只替换每行的第一个匹配到的字符串; i ignore,忽略大小写。 这些选项可以合并使用,如 cgi 表示不区分大小写,整行替换,替换前询问。 正则表达式 元字符 元字符 元字符 说明 . 匹配任意字符 [abc] 匹配方括号中的任意一个字符,可用 - 表示字符范围。如[a-z0-9]匹配小写字母和数字 [^abc] 匹配除方括号中字符之外的任意字符 \d 匹配阿拉伯数字,等同于[0-9] \D 匹配阿拉伯数字之外的任意字符,等同于[^0-9] \x 匹配十六进制数字,等同于[0-9A-Fa-f] \X

Jmeter-集合点与关联

隐身守侯 提交于 2020-01-31 01:35:11
1、集合点 添加同步定时器(Synchronizing Timer) 注意:集合点需要放在需要集合的元件前面 2、关联 预先使用Badboy录制WebTours登录脚本 在登录前插入一个监听器:察看结果树会生成userSession需要对userSession进行关联 使用正则表达式提取器进行关联(webTours的关联要在in=home设置) 引用名称:下一个请求要引用的参数名称,如填写activityID,则可用${activityID}引用它 关联的正则表达式:name="userSession" value="(.+?)"/> 1、()括起来的部分就是要提取的 2、.匹配任何字符串 3、+:一次或多次 4、?:在找到第一个匹配项后停止 模板:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值 匹配数据:0代表随机取值,1代表全部取值 缺省值:如果参数没有取得到值,那默认给一个值让它取 修改登录脚本的userSession值 正确运行结果显示 错误运行结果显示 来源: https://www.cnblogs.com/katyhudson/p/12244486.html

正则表达式(1)

南笙酒味 提交于 2020-01-31 00:20:56
正则表达式符号与方法一常用符号 字符 含义 . 匹配任意字符 * 匹配一个字符无限次或零次 ? 匹配一个字符0次或一次 .* 贪心算法 .*? 非贪心算法 () 括号内的结果作为反回值 常用方法 几种符号的demo demo1 : code = 'huasdakxxIxxbcjkxxlovexxsbsxxyouxxhjhh' r = re . findall ( '..x..' , code ) print ( r ) >> > [ 'akxxI' , 'jkxxl' , 'vexxs' , 'bsxxy' , 'ouxxh' ] demo2 : code = 'huasdakxxIxxbcjkxxlovexxsbsxxyouxxhjhh' r = re . findall ( 'x*' , code ) print ( r ) >> > [ '' , '' , '' , '' , '' , '' , '' , 'xx' , '' , 'xx' , '' , '' , '' , '' , 'xx' , '' , '' , '' , '' , 'xx' , '' , '' , '' , 'xx' , '' , '' , '' , 'xx' , '' , '' , '' , '' , '' ] demo3 : code =