python进阶十_正則表達式(一)

近期状态一直不太好,至于原因。怎么说呢,不好说,总之就是纠结中覆盖着纠结。心思全然不在点上。希望能够借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想。假设真的是我自己的问题呢,曾经我常常跟别人说,千万不要怀疑自己。由于非常清楚一旦连自己都变的不可信。那这个世界就太疯狂了,当一遍一遍的问我,如今连我自己都快怀疑自己了,我一遍一遍的说服别人,想不到如今居然须要自己去说服自己,何其的悲哀~

一.正則表達式基础

1.基本概念

正則表達式是计算机科学的一个概念。正則表達式使用单个字符串来描写叙述、匹配一系列符合某个句法规则的字符串。在非常多文本编辑器里,正則表達式通常被用来检索、替换那些符合某个模式的文本。

正則表達式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、以及这些特定字符的组合。组成一个“规则字符串”。用这个“规则字符串”来对字符串进行一种逻辑过滤。

2.常见构造

以下这张图是盗用的,出处http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

二.正則表達式实践

1.查找文本中的模式

re模块是我们在Python中使用最多的正則表達式模块,常见使用方法就是搜索文本中的模式。search()函数以模式和要扫描的文本作为输入,假设找到匹配这个模式的则返回一个match对象。否则返回None,每一个Match对象都包括有关匹配性质的信息,包括原输入字符串,使用的正則表達式以及模式在原字符串中出现的位置。

示比例如以下:

本来是直接在subline Text2上面编译的。可是发现编译之后没反应,略微检查一下之后发现自己SB了。存在中文路径,就仅仅好用Python 编辑器来了。

2.编译表达式

re模块包括非常多模块级函数,用于处理文本字符串的正則表達式,可是对于程序频繁使用的表达式,编译这些表达式会显得非常高效,re模块中的compile()函数就体现出了它的价值。例如以下:

3.多重匹配

在之前的样例中。我们都是使用的search()来查找文本的单个实例。可是假如我想查找一个文本中全部不重叠的满足模式的字串怎么办呢?这里就要用到findall(),示比例如以下:

Finditer()返回一个迭代器。指向match的实例

时间: 2024-08-02 06:57:47

python进阶十_正則表達式(一)的相关文章

JavaScript正則表達式知识汇总

Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegExp(); 3.RegExp 对象有 3 个方法: 1)test()检索字符串中的指定值,返回值是true或false. var p1=new Reg("e"); document.write(Reg.test("welcome to China!")); 2)exec

paip.java UrlRewrite 的原理and实现 htaccess正則表達式转换

#---KEYWORD #-正則表達式 正則表達式 表示 非指定字符串开头的正则 排除指定文件夹.. 作者 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected] 转载请注明来源: http://blog.csdn.net/attilax #----WEB.XML <filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.f

Python——正則表達式(2)

本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ====================================================================================== 3.使用正則表達式 如今.我们已经学习了一些简单的正則表達式,但我们应该怎么在Python中使用它们呢?re模块提供了一个连接正則表達式引擎的接口,同意你将RE编译成对象并利

Python正則表達式小结(1)

学习一段python正則表達式了, 对match.search.findall.finditer等函数作一小结  以下以一段网页为例,用python正則表達式作一个范例: strHtml = '''<div> <a href="/user/student/" class="user-t"><img src="/uploads/avatar/2015/06/082e408c-14fc-11e5-a98d-00163e02100b

JAVA学习第六十五课 — 正則表達式

正則表達式:主要应用于操作字符串.通过一些特定的符号来体现 举例: QQ号的校验 6~9位.0不得开头.必须是数字 String类中有matches方法 matches(String regex) 告知此字符串是否匹配给定的正則表達式. regex,就是给定的正則表達式 public static void checkQQ() { //第一位是数字1-9,第二位以后是0-9,除去第一位数剩下数字位数范围是5到8位 String regex = "[1-9][0-9]{5,8}";//正

DOM笔记(十):JavaScript正則表達式

一.RegExp ECMAScript通过RegExp类型类支持正則表達式,语法和Perl类似: var exp = /pattern/flags; patternb部分是不论什么简单的或复杂的正則表達式:flags是每一个正則表達式所带的一个或者多个标志. 正則表達式的模式匹配支持三个标志: g:全局模式,即模式应用于整个字符串.而非在发现第一个匹配项时马上停止 i:不区分大写和小写模式 m:多行模式,即到达一行文本末尾是还会继续茶查找下一行中是否存在与模式匹配的项. 1.创建正則表達式 Ja

Python - 连续替换(replace)的正則表達式(re)

字符串连续替换, 能够连续使用replace, 也能够使用正則表達式. 正則表達式, 通过字典的样式, key为待替换, value为替换成, 进行一次替换就可以. 代码 # -*- coding: utf-8 -*- import re my_str = "(condition1) and --condition2--" print my_str.replace("condition1", "").replace("condition

正則表達式常见例题

常见例题 例1:北美地区的电话号 编码方案:电话号码有一个3位数的区号和一位7位数的号码组成(这个7位数有分成  一个3位的局号和一个4位的路号.局号和路号之间使用连字符分隔) 每位电话号码能够是随意数字,可是区号和局号的第一位数字不能是0或1.实际书写号码是往往会把区号写在括号中面,或者将区号使用连字符和后面的局号连接起来.比如:(555)123-1234或555-123-1234,有时候在括号你里面会包括空格.比如:(555 )123-1234 文本: J.Doe:248-555-1234

正則表達式

一.概述 正則表達式是一种能够用于模式匹配和替换的强有力的工具.其作用例如以下: (1)測试字符串的某个模式.比如,能够对一个输入字符串进行測试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证. (2)替换文本.能够在文档中使用一个正則表達式来标识特定文字,然后能够所有将其删除,或者替换为别的文字: (3)依据模式匹配从字符串中提取一个子字符串. 能够用来在文本或输入字段中查找特定文字. 二.匹配字符 字符 解释说明 \ 将下一字符标记为特殊字符.文本.反向引用或