pyqt学习基础 4 -插曲- python 正则表达式学习

python 正则表达式学习

资源来自

学习资源来自ubuntu wiki

正则表达式介绍

正则表达式,各种语言都有相关的库。就其本质而言,正则表达式(或 RE)是一种小型的、高度专业化的编程语言

简单模式

字符匹配

  1. _大多数_字母和字符一般都会和自身匹配。例如,正则表达式 test 会和字符串“test”完全匹配。
  2. 正则表达式使用一些元字符来帮助字符匹配:
    . ^ $ * + ? { [ ] \ | ( ) 

“[” 和 “]”

“[” 和 “]” : 它们常用来指定一个字符类别,所谓字符类别就是你想匹配的一个字符集。
字符可以单个列出,也可以用”-“分隔表示区间[a-z].

\

\d : 相当于[0-9]
\D : 匹配任何非数字字符;相当于[0-9]
\s : 匹配任何空白字符;相当于[ \t\n\r\f\v ]
\S : 匹配任何非空白字符;相当于[
\t\n\r\f\v ]
‘\w‘ : 匹配任何字母数字字符;相当于[a-zA-Z0-9_]
\W : …; 相当于[^a-zA-Z0-9_]
举个栗子:[\s,.]将匹配任何空白字符”,“或者”.”

重复

正则表达式的另一个功能是你可以指定正则表达式的一部分的重复次数。

“*”

  • 我们先来看第一个重复功能的元字符* . * 并不匹配字符”*“;他可以指定前一个字符可以被
    匹配0次或者多次。“ca*t” 可以匹配 “ct”,“caaat”

“+”

  • “+” 表示匹配一次或者多次,最少一次。“ca+t"可以匹配"cat"caaat"但不可以"ct”.
  • {m,n}(注意m,n中不能有空格),它的意思是至少m个重复,最多n个重复。
    {0,} 等同于 *,{1,} 等同于 +,而{0,1}则与 ? 相同。如果可以的话,最好使用 *,+,或?。很简单因为它们更短也更容易懂。

正则表达式在python中的应用

编译正则表达式

正则表达式被编译成 RegexObject 实例,可以为不同的操作提供方法,如模式匹配搜索或字符串替换。


import re
p = re.compile(‘ab\*‘)
print p
<\_sre.SRE\_Pattern object at 0xb76e1a70>

反斜杠的麻烦

  • 要匹配反斜杠,就要2个反斜杠(markdown中写反斜杠麻烦,我就用文字代替) 这样写,但是在python中,反斜杠本来就要2个反斜杠,所以就会需要4个反斜杠来匹配反斜杠
  • 所以就有了r‘‘,字符串前加个 “r” 反斜杠就不会被任何特殊方式处理。所以 r”\n” 就是包含”" 和 “n” 的两个字符,而 “\n” 则是一个字符,表示一个换行。正则表达式通常在 Python 代码中都是用这种 raw 字符串表示。

执行匹配

几个重要的方法(regexobject的方法):
match() : 决定re是否在字符串刚开始的位置匹配
search() : 扫描字符串,找到这个re匹配的位置
findall() : 找到re匹配的所有子串,作为一个列表返回
finditer() : 找到re匹配的所有自串,并把他们作为一个迭代器返回

几个MatchObject的重要方法:


>> m = p.match( ‘tempo‘)
>> print m
<_sre.SRE_Match object at 80c4f68>

group() : 返回被re匹配的字符串
start() : 返回匹配开始的位置
end() : 返回结束的位置
span() : 返回一个元组包含匹配(开始,结束)的位置

举几个栗子

import re
str = "http://www.oschina.net/?code=QlSJi2&state="
pattern = re.compile(‘code=\w+\&‘)

match = pattern.search(str)
if match:
    print match.group(), match.span()
时间: 2024-11-05 18:37:39

pyqt学习基础 4 -插曲- python 正则表达式学习的相关文章

Python正则表达式学习摘要及资料

摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2,4}? 只匹配 2 个 a. ^表示行的开头,^\d表示必须以数字开头. $表示行的结束,\d$表示必须以数字结束. 你可能注意到了,py也可以匹配'python'-->py;但是加上^py$就变成了整行匹配,就只能匹配'py'了,匹配'python'时,就什么也得不到. 参考表 正则表达式特殊序

Python 正则表达式学习摘要及资料

来源:Michael_翔_ 摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2,4}? 只匹配 2 个 a. ^表示行的开头,^\d表示必须以数字开头. $表示行的结束,\d$表示必须以数字结束. 你可能注意到了,py也可以匹配'python'–>py; 但是加上^py$就变成了整行匹配,就只能匹配'py'了,匹配'python'时,就什么也得不到

Python正则表达式 学习笔记

python第一个正则表达式 1. import re : python正则表达式模块 2. 第一个正则表达式 re.compile(r'imooc') pattern.match('imooc python') 示例: import re pa = re.compile(r'imooc') #返回一个Pattern类型对象pa ma = pa.match('imooc python') #返回一个match对象ma print ma.group() #获得匹配结果 print ma.span(

【Python基础学习篇十】Python正则表达式(2015-01-01)

一.正则表达式简介 正则表达式用于文本匹配的工具,在源字符串中查找与给定的正则表达式相匹配的部分.一个正则表达式是由字母.数字和特殊字符组成的.正则表达式中有许多特殊的字符,这些特殊字符是构成正则表达式的要素. 1.正则表达式中的特殊字符: 2.正则表达式中的常用限定符: 利用{}可以控制字符重复的次数. 例如,\d{1,4}表示1位到3位的数字: 某些地区的电话号码是8位数,区号也有可能是3位或4位数字. \d{3}-\d{8}|\d{4}-\d{7} 3.限定符与"?"的组合 二.

Python新手学习基础之初识python——与众不同2

看完了Python的缩进,现在来看看Python的标识符.引号和注释. 标识符 关于Python的标识符,其实不是与众不同,只是有一定的规则. 标识符是编程时使用的名字.在Python中,标识符有几点要素: 第一个字符必须是字母或者下划线 _ : 标识符的的其他部分必须由数字.字母.下划线组成: 标识符对字母的大小写敏感. 引号 Python的字符串通常可以用单引号 ' ' .双引号 " " .双三引号 """ """或单三引

python 正则表达式 学习笔记(不断补充ing)

正则表达式是可以匹配文本片段的模式. 1.常用通配符 符号     说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 2.特殊字符进行转义 如果在正则表达式中想要把特殊字符(如上面的常用通配符)作为普通字符使用,就使用\对它们进行转义.在python的re模块中,需要用\\进行转义:如果不使用双斜线,可以使用原始字符串,这时只要用一个\即可,例如r'python

Python新手学习基础之初识python——与众不同1

Python是什么? 首先我们先简单介绍下python这门语言,Python是一种解释性的脚本语言,它不需要像C/C++那样先编译再执行,也不像JS那样可以在浏览器上直接执行.它为我们提供的基础代码库覆盖了网络.文件.GUI.数据库.文本等大量内容,你可以直接使用Python提供的功能而不用重新开始写.Python在服务端开发,GUI,数据挖掘等等各种领域都能很好的被运用......and so on想要多了解的朋友,可以自行度娘下吧. 知道了Python这门语言之后,我们也需要对它的语言特点进

python 正则表达式 学习笔记(不断补充中)

正则表达式是可以匹配文本片段的模式. 1.常用通配符 .     匹配任意字符(除换行符) \w   匹配字母或数字或下划线或汉字 \s    匹配任意的空白符 \d    匹配 . 匹配任意字符(除换行符) \w  匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或者结束 ^ 匹配字符串的开始 $ 匹配字符串结束    

正则表达式基础---转自 Python正则表达式指南 前边

1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同:但不用担心,不被支持的语法通常是不常用的部分.如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了. 下图展示了使用正则表达式进行匹配的流程:  正则表达式的大