正则表达式

正则表达式入门到熟练使用

偶尔善良 提交于 2020-01-30 21:53:57
1、正则表达式介绍 用来处理复杂的字符串文本,例如查找、匹配、分割、替换等。大部分语言都有内置的支持,例如:Java、C++。 我会使用工具RegexBuddy进行演示 2、普通字符 在正则表达式中,字母、数字、下划线、以及没有特殊定义的标点符号都是普通字符。正则表达式中的普通字符在匹配的时候会匹配一个与之相等的一个字符。 上图中,上面的正则表达式 hello 就匹配到了对应下面字符串文本的 hello world 中的hello。这里正则表达式里面的hello都是普通字符。 3、简单转义字符 \n 换行符 \t 制表符 \\ 代表 \本身 \^ \$ \. \( \) \{ \} \? \+ \* \| \[ \] 代表这些字符本身 因为这些字符具有特殊的含义,所以需要进行转义。 3、标准字符集合 \d 表示0-9的任意一个数字 \w 表示字母、数字、下划线的任意一个 \s 表示一个空白字符,例如 空格 制表符 换行符 . 表示任意一个字符 注意:区分大小写! 大写表示取反,例如 \D 表示非数字 \S表示非空白字符 4、自定义字符集合 自定义字符集合使用中挎号[]包起来,例如 [12@] 表示匹配一个字符,这个字符是 1 或者 2 或者 @。 ^ 表示取反 例如 [^12@] 表示除了1 2 @ 之外的任何字符 - 表示范围 例如 [7-9] 表示 数字 7 8 9,那么[^7

Scrapy 基础

≡放荡痞女 提交于 2020-01-30 19:42:15
1.requests 安装: -pip install requests 确认requests是否安装成功 -import requests eg : -import requests r = requests.get("htpp://www.baidu.com")# 获取百度 r.status_code #状态码 返回值 :200 说明 请求成功 t.encoding = 'utf-8' t.text #打印百度的html网页的代码 -- html 代码 --2.get方法: r =requests.get(url) request.get(url,params=None, **kwargs) url: 拟获取页面的url的链接, params: url中的额外参数,字典或字节流格式,可选 ** kwargs 可选的3.Response 对象: -属性: r.status_code:http请求的返回状态,200表示链接成功, 404表示连接失败 t.text; http响应内容的字符串形式, 即, url对应的页面内容\ r.encoding:从http header中猜测的响应内容编码方式, r.apparent_encoding: 从内容分析出的响应内容编码方式(备选编码方式) r.content :http响应内容的二进制形式4.requests库的异常:

计蒜客(七)Python中的正则表达式

社会主义新天地 提交于 2020-01-30 13:33:56
1.什么是正则表达式 正则表达式(regular expression)是一种用于匹配文本形式的强大逻辑表示,在Python中的re模组提供了正则表达式的支持。 正则表达式由一些普通字符和一些元字符(meta characters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊含义。 当正则表达式为一个普通的字符串时,一个正则表达式的匹配行为就是一个普通的字符串查找过程,如正则表达式“testing”中没有包含任何元字符,它可以匹配“testing”和“testing123”等字符串,但因为大小写敏感,它不能匹配“Testing”。其他一些元字符则不会被作为普通字符来处理,它们包括 . ^ $ + ? { [ ] \ | ( ) 。 . 匹配除了换行以外的任何字符 \w 等价于[a-zA-Z0-9_]会匹配单一字母、数字或下划线字符,而\W则会匹配任何非字母、数字和下划线的单一字符 \b 匹配“单一字母、数字或下划线字符”和“任何非字母、数字和下划线的单一字符” \s 等价于 [ \n\r\t\f],会匹配一个空白字符(包括空格、换行、返回、制表符、表格),\s则会匹配所有非空白字符 \t 匹配制表符 \n 匹配换行符 \r 匹配返回符 \d 等价于[0-9]用于匹配十进制表示的数字 ^作为开始标记,$作为结束标记,分别用于标记一个字符串的开始和结束的位置。 \

云计算时代

别来无恙 提交于 2020-01-30 01:03:16
人们想到选择一门计算机语言时,可能会选择学校里学到的知名度高的通用过程语言之一,比如C、Java或Python。但这些经常被人选择的语 言只是计算机语言领域的冰山一角而已――如果它使用关键字和结构来传达信息,那它就是一门语言。下面是值得考虑的十大云计算语言。 SQL数据语言 云计算时代,值得重视的十大云计算语言 说到数据语言,SQL是几十年来无可争议的霸主。连非关系型数据库服务器也使用某种SQL语言。就跟IT的其他所有领域一样,云计算领域同样充斥着SQL。 这是每个地方的开发人员都会会心一笑的SQL玩笑。“有人走进一间酒吧,看到两张桌子。他说‘我可以跟你一起喝吗?’” XML数据语言 云计算时代,值得重视的十大云计算语言 XML用来描述文档,而不是传达一串指令。由于XML通常并不给计算机下达指令,它通常不被认为是一门计算机语言。 XML是大受欢迎的数据标记语言,而这主要归因于Java。只要有Java的地方,就有XML。又由于Java自从早在云计算大行其道之前就一直驱动大规模分布式系统,XML文档无处不在。Apache hadoop配置就驻留在XML文件中。 R数学语言 云计算时代,值得重视的十大云计算语言 R语言帮助广大开发人员处理统计数字、报告和图形。交互式R教程让新的开发人员领略向量、因子及关联数据集带来的乐趣。 亚马逊将RStudio集成开发环境(IDE)与其EMR

正则表达式之捕获型分组与非捕获型分组

房东的猫 提交于 2020-01-29 21:09:52
使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。 捕获组 语法: 字符 描述 示例 ( pattern ) 匹配pattern并捕获结果,自动设置组号。 (abc)+d 匹配abcd或者abcabcd (?< name > pattern ) 或 (?' name ' pattern ) 匹配pattern并捕获结果,设置name为组名。 \ num 对捕获组的反向引用。其中 num 是一个正整数。 (\w)(\w)\2\1 匹配abba \k< name > 或 \k' name ' 对命名捕获组的反向引用。其中 name 是捕获组名。 (?<group>\w)abc\k<group> 匹配xabcx 使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个捕获组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。 例如: (\d{4})-(\d{2}-(\d{2})) 1 1 2 3 32 以下是用程序处理捕获组的示例,对一个Url地址进行解析,并显示所有捕获组。 可以看到按顺序设置的捕获组号。 Regex.Match方法 复制代码 代码如下: using System

jmeter关联——正则表达式笔记

大憨熊 提交于 2020-01-29 16:10:20
1、正则表达式语法 2、举例实战:   新增线程组,增加http请求,输入对应的访问url信息,以自己的博客url作为实战 着重记录正则表达提取   1、在对应的http请求——新增后置处理器——正则表达式处理器 引用该变量: ${变量名} 增加察看结果树,将线程组循环三次,则可以看出每次的文章都是随机被访问,使得模拟跟贴近实际操作 本人为小测试,如有错误,请多多指教。 来源: https://www.cnblogs.com/feihan/p/12240387.html

JavaScript正则表达式

妖精的绣舞 提交于 2020-01-29 15:43:47
正则表达式 概念 : 定义一些字符串的规则 计算机可以根据正则表达式 来检查一个字符串是否符合规则 获取将字符串中符合规则的内容提取出去 正则表达式是个对象 创建正则表达式对象 : var 变量=new RegExp(“正则表达式”,“匹配模式”); var reg = new RegExp ( "a" ) ; //检查一个字符串里面是否含有a 在构造函数里可以传递一个匹配模式做第二个参数可以是 i忽略大小写 g 全局匹配模式(在后面讲到) var reg = new RegExp ( "A" , "i" ) ; 正则表达的方法 test(); 检查一个字符串是否符合正则表达式的规则 var str = "a" ; var result = reg . test ( str ) ; console . log ( result ) ; 使用字面量创建正则表达式 var 变量=/正则表达式/匹配模式 使用字面量更加简单 使用字面量更加灵活 var reg = /a/i ; console . log ( reg . test ( "acad" ) ) ; //true 一些正则表达式的语法 //创建一个正则表达式检查一个字符串是否有a或者有b var reg = /a|b/ ; //还可以继续加 console . log ( reg . test ( "aaasd" ) ) ; /

C++之正则表达式

你说的曾经没有我的故事 提交于 2020-01-29 12:16:51
正则表达式是独立与任何语言本身的一个很大的话题。在C++中,regex就是涉及到正则表达式的内容。 [a-z]+.\txt:在这个正则表达式中,[a-z]标识匹配一个小写字母,+可以是前面的表达式匹配多次,因此[a-z]+能够匹配一个小写字母组成的字符串。 在正则表达式中的一个 . 表示匹配任意字符,而 \. 则表示匹配字符 . ,最后txt表示严格匹配txt三个字母。因此这个正则表达式索要匹配的内容就是由纯小写字母组成的文本文件。 regex_match用于匹配字符串和正则表达式,有很多不同的重载形式。最简单一种形式就是传入string以及一个regex进行匹配,当匹配成功,会返回一个true,否则返回一个false。 /* regex.cpp */ #include<iostream> #include<string> #include<regex> using namespace std; int main() { string fnames[] = {"foo.txt", "bar.txt", "test", "a0.txt", "AAA.txt"}; std::regex txt_regex("[a-z]+\\.txt"); for (const auto &fname: fnames) { cout << fname << ": " << regex_match

Linux基础问题整理

两盒软妹~` 提交于 2020-01-29 08:04:32
1.了解在当前目录下还有多大空间使用的命令: Use du . 2.需要找出/etc/my.conf文件属于哪个包,可以执行的命令: rpm -requires /etc/my.conf 3.如果当前系统是在level3运行,怎样不重启系统就可以转换到level5运行:telinit 5 4. 改变IDE硬盘的设置:hdparm 5.set PS1="[\u\w\t]\$";export PS1的作用:改变错误信息提示 6.区分: 更改一个文件的权限设置:attrib; 修改文件访问权限:chmod。 其中,attrib指令用于修改文件的属性.文件的常见属性有:只读.存档.隐藏和系统.   只读属性是指文件只可以做读的操作.不能对文件进行写的操作.就是文件的写保护.   存档属性是用来标记文件改动的.即在上一次备份后文件有所改动.一些备份软件在备份的时候会只去备份带有存档属性的文件.   隐藏属性顾名思义即为隐藏文件.在通常情况下.在资源管理器中不显示带有隐藏属性的文件.   系统属性是指标注文件为系统文件.是系统需要调用的文件.系统属性包括隐藏和只读属性,且在WINDOWS GUI模式下不能更改。   外部命令:Attrib.exe 7.可以定义在以后特定时间运行一次的所有任务:batch 8.可以一次显示一页的内容:cat; more:以分页的显示形式显示内容。按空白键

用python正则表达式提取字符串

若如初见. 提交于 2020-01-29 04:00:26
转自 https://www.cnblogs.com/rj81/p/5933838.html 在日常工作中经常遇见在文本中提取特定位置字符串的需求.python的正则性能好,很适合做这类字符串的提取,这里讲一下提取的技巧,正则表达式的基础知识就不说了,有兴趣的可以看re的教程. 提取一般分两种情况,一种是提取在文本中提取单个位置的字符串,另一种是提取连续多个位置的字符串.日志分析会遇到这种情况.下面我会分别讲一下对应的方法: 1. 单个位置的字符串提取 这种情况我们可以使用 (.+?) 这个正则表达式来提取. 举例,一个字符串 "a123b" ,如果我们想提取ab之间的值123,可以使用 findall 配合正则表达式,这样会返回一个包含所以符合情况的list,代码如下: import re str = "a123b" print re.findall(r"a(.+?)b",str)# 输出['123'] 1.1贪婪和非贪婪匹配 如果我们有一个字符串”a123b456b”,如果我们想匹配a和最后一个b之间的所有值而非a和第一个出现的b之间的值,可以用 ? 来控制正则贪婪和非贪婪匹配的情况. 代码如下: import re str = "a123b456b" print re.findall(r"a(.+?)b", str) #输出['123']#?控制只匹配0或1个