正则表达式

数据科学的完整学习路径(Python版)

我只是一个虾纸丫 提交于 2020-01-27 23:59:52
转载自: http://python.jobbole.com/80981/ 英文(原文)连接:https://www.analyticsvidhya.com/learning-paths-data-science-business-analytics-business-intelligence-big-data/learning-path-data-science-python/ 从Python菜鸟到Python Kaggler的旅程(译注: Kaggle 是一个数据建模和数据分析竞赛平台) 假如你想成为一个数据科学家,或者已经是数据科学家的你想扩展你的技能,那么你已经来对地方了。本文的目的就是给数据分析方面的Python新手提供一个完整的学习路径。该路径提供了你需要学习的利用Python进行数据分析的所有步骤的完整概述。如果你已经有一些相关的背景知识,或者你不需要路径中的所有内容,你可以随意调整你自己的学习路径,并且让大家知道你是如何调整的。 步骤0:热身 开始学习旅程之前,先回答第一个问题:为什么使用Python?或者,Python如何发挥作用? 观看DataRobot创始人Jeremy在PyCon Ukraine 2014上的 30分钟演讲 ,来了解Python是多么的有用。 步骤1:设置你的机器环境 现在你已经决心要好好学习了,也是时候设置你的机器环境了

正则表达式迷路了?看这一文就够了!

半世苍凉 提交于 2020-01-27 22:27:31
目录导航 前言 什么是正则表达式 巧用正则解决实际问题 正则表达式在 Java 中的应用 正则表达式其实并不是那么难 正则表达式引擎的内部工作机制 常用的正则举例 正则表达式的高级用法 后记 前言 对于正则表达式,相信很多人都知道,但是很多人的第一感觉就是难学,因为看第一眼时,觉得完全没有规律可寻,而且全是一堆各种各样的特殊符号,完全不知所云。 其实只是对正则不了解而以,了解了你就会发现,原来就这样啊正则所用的相关字符其实不多, 也不难记,更不难懂,唯一难的就是组合起来之后,可读性比较差,而且不容易理解。 什么是正则表达式 正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去匹配符合规则的字符。 巧用正则解决实际问题 场景一: 在 csdn 复制代码会自带序号,如何快速去掉 场景二: 编辑 word 文档,经常会查找字符串 正则表达式在 Java 中的应用 场景一: HttpServlet 的 url 配置 场景二: SpringMVC 的 url 配置等框架 场景三: 不规则数据的内容分析(爬虫、文档解析) 正则表达式其实并不是那么难 难懂的主要原因 1、可读性不强 2、一句话包含 N 种逻辑 正则表达式组成 1、边界符 ^ 开始符 $ 结束符 [] 单字符 () 分组 - 区间 a-z、A-Z、0-9 2、转义符 \b

.NET正则表达式入门金典

好久不见. 提交于 2020-01-27 13:12:16
在探讨这个话题之前,咱们先通过一个例子来看下为什么需要正则表达式? 先来看下面一个例子,解析如下IP: 192.160.1.234[port=8080,type=ftp] 将上述表达式中的IP地址,端口号和端口类型提取出来。 没有正则表达式之前,大家猛的一看,估计崩溃了。没办法,用string类的方法截取呗。于是,我们写下了如下代码: string str = "192.160.1.234[port=8080,type=ftp]"; int indexIP = str.IndexOf("["); string ip = str.Substring(0, indexIP); //获取端口号 int serverestart = str.IndexOf("="); int serverend=str.IndexOf(","); string server = str.Substring(serverestart+1,serverend-serverestart-1); //提取协议类型 int typestart = str.LastIndexOf("="); int typeend = str.LastIndexOf("]"); string type = str.Substring(typestart+1,typeend-typestart-1); string result =

[JS]笔记11之正则表达式

一个人想着一个人 提交于 2020-01-27 10:25:15
-->什么是正则表达式 -->定义正则 -->正则的索引 -->元字符 -->方括号、量词、其他符号 -->RegExp 对象的方法 -->String 对象方法 1、定义: 正则用于规定在文本中检索的内容,它是对字符串执行模式匹配的强大工具 RegExp(正则表达式) 对象的语法: new RegExp( pattern , attributes ); pattern 为一个字符串或匹配规则 attributes 为可选字符串,包含属性g、i 和 m g :代表全局匹配 (继续往下匹配) i :代表不区分大小写匹配 m:代表多行匹配,只对^和$模式有用 2、定义正则表达式 定义正则表达式有两种形式: 构造函数方式: new RegExp(pattern, attributes); 例:var reg=new RegExp(“ abc ","g"); 构造函数中的正则可以是 常量字符串 或 一个js变量 普通方式:/pattern/attributes(/正则/属性) 例:var reg=/abc/g; 普通方式中的正则必须是一个常量字符串 3、正则的索引 每个正则表达式都有一个 lastIndex 属性,用于记录上一次匹配结束的位置(索引值)。 获取 reg.lastIndex 设置 reg.lastIndex=0; 4、元字符 \d : 匹配任意一个数字,0~9 中的任意一个

【Python数据采集】提取页面内容的几种手段

我与影子孤独终老i 提交于 2020-01-27 04:03:40
前言 在我们获取了网页的信息后,往往需要对原始信息进行提取,得到我们想要的数据。对信息的提取方式主要有以下几种:正则表达式、XPath、BeautifulSoup。本篇博客主要总结这三种方式的基本语法,以及举一些例子来说明如何使用这些方法。 正则表达式 什么是正则表达式? 正则表达式是使用某种预定义的模式去匹配一类具有共同特征的字符串,主要用于处理字符串,可以快速、准确地完成复杂的查找、替换等要求。 在Python中, re模块 提供了正则表达式操作所需要的功能。所以,在Python中使用正则表达式需要先 import re 。 在使用正则表达式提取信息时可以概括为以下三步(大部分提取信息方法的步骤也是如此): 寻找规律 使用正则符号表示规律 提取信息 正则表达式的基本符号 这里主要介绍正则中的基本符号,高级的语法的部分会在后面附上链接供大家参考学习。 一般符号 名称 描述 示例 点号. 匹配除换行符 \n 以外任意单个字符,若是要匹配 . 则需要使用转义字符 \ a.c -> a b c, a # c 方括号[] 字符集(字符类)。对应的位置可以是指定字符集中的任意字符,[]中的字符可以逐个列出,也可以给出范围。^符号表示取反,即除指定字符以外的其他字符。 a[bcd]e -> a b e; a[b-f]g -> a b g; a[^bc]d -> aefd

正则表达式

只谈情不闲聊 提交于 2020-01-27 01:59:54
- -什么是正则表达式? 正则表达式 又称为 '' 规则表达式’ ,通常用来检索,替换那些符合某个模式的文本。 主要目的是: 给定一个正则表达式和和另一个字符串能够达到如下效果: 1.给定的字符串是否符合正则表达式的规定; 2.可以通过正则表达式,从字符串中获取我们想要的特定部分。 - -正则表达式的组成与一些实例(常用) * 元字符 (拥有一些特殊含义的字符) 元字符 描述 . 查找单个字符,除了换行和结束字符 \d 查找数字 \D 查找非数字字符 \w 查找单词字符 \W 查找非单词字符 \s 匹配空白字符 \S 匹配非空白字符 \b 匹配单词边界 \B 匹配非单词边界 \uxxxx 查找单个字符,除了换行和结束字符 * 量词 量词 描述 n+ 匹配任何包含至少一个n的字符串 n* 匹配任何包含零个或多个n的字符串 ? 匹配任何包含零个或一个n的字符串 n{X} 匹配包含X个n的序列的字符串 n{X,Y} 匹配包含X至Y个n的序列的字符串 n{X} 匹配包含至少X个n的序列的字符串 /^X Y$/ 匹配以X开头 Y结尾的字符串 ?=n 匹配任何其后紧接指定字符串 n 的字符串 ?!n 匹配任何其后紧接非指定字符串 n 的字符串。 * 中括号 (查找某个范围内的字符) 表达式 描述 [abc] 查找方括号之间的任何字符 [^abc] 查找任何不在方括号之间的字符 [A-z]

sed,awk与正则表达式

梦想的初衷 提交于 2020-01-27 00:05:10
sed 擅长取行, awk 命令擅长取列 sed 格式 : sed <option> <script> <file> option -e : 执行多个命令 命令之间必须用分号隔开 命令末尾和分号之间不能有空格 例子: sed -e 's/brown/green; s/dog/cat' data.txt -f : 从文件读取命令 每个命令一行,无需分号 例子: sed -f script.sed data.txt -n :不产生命令输出,用print命令完成输出 script **s **: 用第二个斜线间的字符串替换第一个斜线间的字符串 例子: echo "a dog" | sed 's/dog/cat/' file 不指定则默认为 STDIN sed 不会修改 文件数据,而是把修改后的数据发送到 STDOUT awk 格式 : awk <options> <program> <file> option -f : 从文件读取命令 必须以 {} 开头结尾 每个命令一行,无需分号 -F : 自定义字段分隔符 默认分隔符是空白符 例子: awk -F: '{print $1}' /etc/passwd program 可以自定义 变量 引用自定义变量时不需要 $ 默认变量 $0 代表整个文本行 $1 代表第1个数据字段 $n 代表第n个数据字段 关键字 BEGIN

LINUX文本处理三剑客

扶醉桌前 提交于 2020-01-26 23:01:04
LInux想必大家都不陌生,命令行秒杀微软的DOS,自从用上了linux鼠标似乎离我也原来越远了.今天我们不多说linux,说说linux的文本处理工具. 一.Grep: 全称: Global search Regular expression and Print out the line. 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行; 模式: 有正则表达式字符以及文本字符所编写的过滤条件; REGXP:有一类特殊字符以及文本字符所编写的模式;其中有些字符不表示字符字面意义,而表示控制或通配的功能; 分两类: 1.基本正则表达式:BRE 2.扩展正则表达式:ERE 1.正则表达式引擎: Grep [OPTION] PATERN [FILE…] 选项; --color=auto: 对匹配到的文本着色显示; -v:显示不能够被pattern匹配到的行; -i: 忽略字符大小写; -o:仅显示匹配到的字符串; -q: 静默模式,不输出任何信息; -A #,after,后#行 -B #, before,前#行 -C #: context, 前后各#行 -E:使用ERE: ps: grep -E = egrep 基本正则表达式元字符: 字符匹配: .:匹配任意单个字符; []: 匹配指定范围内的任意单个字符; [^]: 匹配指定范围外的任意单个字符;

[Python进阶]Python正则表达式

孤街浪徒 提交于 2020-01-26 22:26:21
[Python进阶]Python正则表达式 文章目录 [Python进阶]Python正则表达式 一、元字符 二、分组 三、特殊字符序列 四、正则表达式常用方法(函数) compile match fullmatch search sub subn split findall finditer escape start()、end()、span() 一、元字符 . 匹配除换行符之外的任何字符,当 re.DOTALL 标记被指定时,则可以匹配包括换行符的任意字符。 ^ 匹配字符串的开头 $ 匹配字符串的末尾或字符串末尾的换行符之前 re* 重复匹配前面的字符零次或者更多次(贪婪模式:尽可能多的匹配遇到的重复) re+ 重复匹配前面的字符1次或者更多次(贪婪模式) re? 重复匹配前面的字符0次或者1次(非贪婪模式) re{m} 重复匹配m次,例如,"o{2}“不能匹配"Bob"中的"o”,但是能匹配"food"中的两个o。 re{n, } 精确匹配n个前面表达式。例如,"o{2,}“不能匹配"Bob"中的"o”,但能匹配"foooood"中的所有o。"o{1,}“等价于"o+”。“o{0,}“则等价于"o*”。 re{m,n} 重复匹配m次或者n次(贪婪模式) re{m,n}? {m,n}的非贪婪模式. \\ 转义特殊字符或表示特殊序列 [...] 表示一组字符,如果以”^

jQuery 正则表达式

こ雲淡風輕ζ 提交于 2020-01-26 12:10:53
正则表达式 \w \s \d \b . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 等价于 '[A-Za-z0-9_]'。 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 \w能不能匹配汉字要视你的操作系统和你的应用环境而定 一,test - 判断字符串是否符合规定的正则 rep = /\d+/; rep.test("asdfoiklfasdf89asdfasdf") # true rep = /^\d+$/; rep.test("asdfoiklfasdf89asdfasdf") # true 二,exec - 获取匹配的数据 rep = /\d+/; str = "wangshen_67_houyafa_20" rep.exec(str) # ["67"] JavaScript is more fun than Java or JavaBeans! var pattern = /\bJava(\w*)\b/; # ["JavaScript", "Script"] JavaScript is more fun than Java or JavaBeans! var pattern = /\bJava\w*\b/g; # ["JavaScript"] # ["Java"] # ["JavaBeans