正则表达式

PYTHON3.day01RE

限于喜欢 提交于 2020-01-25 23:41:43
正则表达式 一. 动机 1. 文本处理已经成为计算机常见工作之一 2. 对文本内容搜索,定位,提取是逻辑比较复杂的工作 3. 为了快速方便的解决上述问题,产生了正则表达式技术 二. 简介 定义:即文本的高级匹配模式,提供搜索,替换等功能。其本质是一系列由字符和特殊符号构成的字串,这个字串即正则表达式 匹配原理:通过普通字符和有特定含义的字符,来组成字符串,用以描述一定的字符串规则,比如重复,位置等,来表达一种特定类型的字符串,进而匹配。 目标:1. 熟练掌握正则表达式符号 2. 能够读懂常用正则表达式,编辑基本表达式匹配内容 3. 能够熟练使用re模块操作正则表达式 三. 元字符的使用 1. 普通字符 匹配规则:每个普通字符匹配其对应的字符 In [14]: re.findall('ab','abcdefabcda') Out[14]: ['ab', 'ab'] 注意事项:正则表达式也可以匹配中文 2. 或 元字符 : | 匹配规则:匹配 | 两侧任意正则表达式即可 In [17]: re.findall('ab|ef','abcdefabcda') Out[17]: ['ab', 'ef', 'ab'] 3. 匹配开始位置 元字符: ^ 匹配规则: 匹配目标字符串的开始位置 In [21]: re.findall('^Jame','Jame,hello') Out[21]: [

re模块(Python中的正则表达式)

≯℡__Kan透↙ 提交于 2020-01-25 23:41:17
re模块    正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。 正则表达式中常用的字符含义 1、普通字符和11个元字符: 普通字符 匹配自身 abc abc . 匹配任意除换行符"\n"外的字符(在DOTALL模式中也能匹配换行符 a.c abc \ 转义字符,使后一个字符改变原来的意思 a\.c;a\\c a.c;a\c * 匹配前一个字符0或多次 abc* ab;abccc + 匹配前一个字符1次或无限次 abc+ abc;abccc ? 匹配一个字符0次或1次 abc? ab;abc ^ 匹配字符串开头。在多行模式中匹配每一行的开头 ^abc abc $ 匹配字符串末尾,在多行模式中匹配每一行的末尾 abc$ abc | 或。匹配|左右表达式任意一个,从左到右匹配,如果|没有包括在()中,则它的范围是整个正则表达式 abc|def abc def {} {m}匹配前一个字符m次,{m,n}匹配前一个字符m至n次,若省略n,则匹配m至无限次 ab{1,2}c abc abbc [] 字符集。对应的位置可以是字符集中任意字符。字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c]。[^abc]表示取反,即非abc。

python正则表达式

空扰寡人 提交于 2020-01-25 23:40:52
import re #导入正则模块re #re.match 尝试从字符串的开始匹配一个模式 text = 'jgood is a handsome boy,he is cool , cleber,and so on...' m = re.match(r'(\w+)\s',text) #re.search 在字符串内查找模式匹配,只匹配第一个,若无则返回None s = re.search(r'\shan(ds)ome\s',text) #re.sub 替换字符串匹配项 re.sub(r'\s+','-',text) #re.split 分割字符串 re.split(r'\s+',text) #re.findall 获取字符串所有匹配字符 re.findall(r'\w*oo\w*',text) #re.compile 可以把正则表达式编译成一个正则表达式对象 c = re.compile(r'\w*oo\w*') c.findall(text) * 匹配前一个字符0或无限次 + 匹配前一个字符一次或无限次 ? 匹配前一个字符0或1次 \b 表示单词的开头或结尾,空格、标点、换行都算是单词的分割 [] 表示满足括号中任一字符 任意字符是用“.”表示,而“*”则不是表示字符,而是表示数量,“?”匹配到最短的就停止,懒惰匹配, [0-9],类似的还有[a-zA-Z]的用法 [0-9]*

正则表达式

為{幸葍}努か 提交于 2020-01-25 23:40:37
1 正则表达式概述 1.1 什么是正则表达式 正则表达式:Regular Expression,是一些由特殊的字符和符号组成的字符串,主要用来进行高级的文本匹配、搜索、替换等功能操作。 正则表达式是一个独立的技术,python中提供了re模块来支持正则表达式 1.2 第一个正则表达式 import re target = "hello, email@qq.com regexp in python with regular on expression" reg = r"l" print(re.findall(reg, target)) 2 正则表达式操作语法 2.1 基本语法 2.1.1 基本正则语法 匹配字符符号 描述 案例 literal 匹配文本字面值 foo re1/re2 匹配正则表达式 re1或者re2 foo/bar ^ 匹配目标字符串开头位置 ^Dear $ 匹配目标字符串结束位置 py$ . 匹配任意一个字符(\n 除外) h.llo ? 匹配任意一个字符出现0次/1次 foo? + 匹配任意一个字符出现1次/n次 foo+ * 匹配任意一个字符出现0次/n次 foo* {m} 匹配任意一个字符按 m 次 foo{m} {m,} 匹配任意一个字符出现至少 m 次 foo{m,} {m,n} 匹配任意一个字符出现 m~n 次 foo{2,5} [0-9] 匹配任意一个

正则表达式

微笑、不失礼 提交于 2020-01-25 23:40:18
import re patten = re.compile(r".") //将正则表达式的字符串编译为一个对象 r0 = patten.manth("f") //使用正则表达式的对象匹配指定字符串, 匹配成功返回匹配到的字符的下标 span(0,1) ,否则返回None ---------- 匹配单个字符与数字 --------- . 匹配除换行符以外的任意字符 #匹配数字 [0123456789] []是字符集合,表示匹配方括号中所包含的任意一个字符 [0-9] 匹配任意数字,类似[0123456789] \d 匹配数字,效果同[0-9] #匹配字母 [hfjsghe] 匹配good中任意一个字符 [a-z] 匹配任意小写字母 [A-Z] 匹配任意大写字母 #匹配数字和字母 [0-9a-zA-Z] 匹配任意的数字和字母 #匹配数字,字母, _ [0-9a-zA-Z_] 匹配任意的数字、字母和下划线 \w 匹配数字,字母和下划线,效果同[0-9a-zA-Z_] [^abc] 匹配除了good这几个字母以外的所有字符,中括号里的^称为脱字符,表示不匹配集合中的字符 [^0-9] 匹配所有的非数字字符 \D 匹配非数字字符,效果同[^0-9] [^0-9a-zA-Z_] \W 匹配非数字,字母和下划线,效果同[^0-9a-zA-Z_] \s 匹配任意的空白符(空格,回车,换行,制表

python的正则表达式

…衆ロ難τιáo~ 提交于 2020-01-25 23:39:40
1.re.findall("a","ab")   a:匹配规则 ab:要匹配的内容   结果以列表的形式返回:['a'] 2.元字符:".","^","$","*","+","?","{ }","[ ]","|","( )","\"   ".":匹配除换行符“\n”以外任何字符; import re A = re.findall('ab.d',"abcdefg") B = re.findall('ab.e',"abcdefg") print(A) #['abcd'] print(B) #[]   "^":匹配字符串开头      import re A = re.findall('^ab',"abcdefg") B = re.findall('^bc',"abcdefg") print(A) #['ab'] print(B) #[]   "$":匹配字符串结尾 import re A = re.findall('ab$',"abcdefg") B = re.findall('fg$',"abcdefg") print(A) #[] print(B) #['fg']   "*":匹配前一个字符0次或无限次 import re A = re.findall('ab*',"abbdefg") B = re.findall('ab*',"acdefg") print(A) #['abb']

python正则表达式

一世执手 提交于 2020-01-25 23:37:54
python中的正则表达式(re模块) 一、简介 正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。 二、正则表达式中常用的字符含义 1、普通字符和11个元字符: 普通字符 匹配自身 abc abc . 匹配任意除换行符"\n"外的字符(在DOTALL模式中也能匹配换行符 a.c abc \ 转义字符,使后一个字符改变原来的意思 a\.c;a\\c a.c;a\c * 匹配前一个字符0或多次 abc* ab;abccc + 匹配前一个字符1次或无限次 abc+ abc;abccc ? 匹配一个字符0次或1次 abc? ab;abc ^ 匹配字符串开头。在多行模式中匹配每一行的开头 ^abc abc $ 匹配字符串末尾,在多行模式中匹配每一行的末尾 abc$ abc | 或。匹配|左右表达式任意一个,从左到右匹配,如果|没有包括在()中,则它的范围是整个正则表达式 abc|def abc def {} {m}匹配前一个字符m次,{m,n}匹配前一个字符m至n次,若省略n,则匹配m至无限次 ab{1,2}c abc abbc [] 字符集。对应的位置可以是字符集中任意字符。字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c]。

python learning Regular Expression.py

纵饮孤独 提交于 2020-01-25 23:37:34
# 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 # 在正则表达式中,如果直接给出字符,就是精确匹配。用\d可以匹配一个数字,\w可以匹配一个字母或数字 ''' '00\d'可以匹配'007',但无法匹配'00A'; '\d\d\d'可以匹配'010'; '\w\w\d'可以匹配'py3'; ''' # .可以匹配任意字符,所以: ''' 'py.'可以匹配'pyc'、'pyo'、'py!'等等。 ''' # 用*表示任意个字符(包括0个),用+表示至少一个字符,用?表示0个或1个字符,用{n}表示n个字符,用{n,m}表示n-m个字符: ''' 来看一个复杂的例子:\d{3}\s+\d{3,8}。 我们来从左到右解读一下: \d{3}表示匹配3个数字,例如'010'; \s可以匹配一个空格(也包括Tab等空白符),所以\s+表示至少有一个空格,例如匹配' ',' '等; \d{3,8}表示3-8个数字,例如'1234567'。 综合起来,上面的正则表达式可以匹配以任意个空格隔开的带区号的电话号码。 如果要匹配'010-12345'这样的号码呢?由于'-'是特殊字符,在正则表达式中,要用'\'转义,所以,上面的正则是\d

linux文本处理工具之grep与正则表达式语法

你说的曾经没有我的故事 提交于 2020-01-25 22:36:37
Grep 介绍 Linux 文本处理三剑客之一,文件过滤工具(另外两剑客为 sed :文本编辑工具, awk :文本报告生成器) 拥有着,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行的功能。 使用 Grep 除了正常的字符使用之外 还可以运用正则表达式字符。 Grep 的重要命令选项 --color=auto 关键字高亮显示( centos7 默认) *-v 关键字 显示不包含关关键字的行,取反 *-i 关键字 忽略关键字的大小写 -n 显示的结果每行前增加行号 -c 仅显示找出的结果的行数 *-o 仅显示匹配到的关键字,不显示同行的其他内容 *-w 关键字 匹配整个单词 *-E 等于 egrep 使用扩展正则表达式 正则表达式 正则表达式 regexp 又称规则表达式,是由一类特殊字符及文本编写的,其中有些字符有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能。 就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个 “规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种 文本模式 ,模式描述在搜索文本时要匹配的一个或多个字符串 。 正则表达式的使用 具有特殊意义的字符元字符有着 字符匹配,匹配次数、位置锚定、分组四个功能。掌握了这四个功能 在运用正则表达式的时候会事半功倍 以下四个功能处理的都是元字符。 1.

251 正则表达式

…衆ロ難τιáo~ 提交于 2020-01-25 13:23:48
1.正则表达式概述 1.1 什么是正则表达式 正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。 正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入英文字母、数字或者下划线, 昵称输入框中可以输入中文(匹配)。此外,正则表达式还常用于过滤掉页面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等 。 其他语言也会使用正则表达式,本阶段我们主要是利用JavaScript 正则表达式完成表单验证。 1.2 正则表达式的特点 灵活性、逻辑性和功能性非常的强。 可以迅速地用极简单的方式达到字符串的复杂控制。 对于刚接触的人来说,比较晦涩难懂。比如:^\w+([-+.]\w+) @\w+([-.]\w+) .\w+([-.]\w+)*$ 实际开发,一般都是直接复制写好的正则表达式. 但是要求会使用正则表达式并且根据实际情况修改正则表达式. 比如用户名: /^[a-z0-9_-]{3,16}$/ 2.正则表达式在js中的使用 2.1 正则表达式的创建 在 JavaScript 中,可以通过两种方式创建一个正则表达式。 方式一:通过调用RegExp对象的构造函数创建 var regexp = new RegExp(/123/); console.log