`
rootsoso
  • 浏览: 69332 次
  • 性别: Icon_minigender_1
  • 来自: 马勒隔壁
社区版块
存档分类
最新评论

Python正则表达式用法

阅读更多

Python的re模块就是其正则表达式模块,如果使用的话需要导入

 

import re

 最简单的是字符串包含的一些类似于函数

s = '100 NORTH MAIN ROAD'
s.replace('ROAD', 'RD.') 
'100 NORTH MAIN RD.'

 这样的替换方法不太智能 可能把每个单词中包含ROAD的都给替换了  这就不是我们的本意了

 import re                             
 re.sub('ROAD$', 'RD.', s)  

 正则表达式的替换方式能够“聪明”查找单词 完成任务

 

 

创建表达式实例

p = re.compile('[a-z]+')

 编译了一个‘RegexObject’的实例

 

接下来就可以使用match函数来检测字符串是否符合正则表达

print p.match("abc")

 如果匹配的话,match函数返回一个‘MatchObject’实例 通过一些操作可以得到一些信息

方法/属性 作用
group() 返回被 RE 匹配的字符串
start() 返回匹配开始的位置
end() 返回匹配结束的位置
span() 返回一个元组包含匹配 (开始,结束) 的位置

 

 

match()函数和search()函数用法的区别

match()函数用在检测被检测的字符串是否符合我们的要求,例如

p = re.compile('a\w*')
m = p.match("abc")
print m.span()
(0, 3)

m2 = p.match("babc")
print m2
none

m3 = p.search("babc")
print m3.span()
(1,4)
 

如果使用search()函数的话,python能够找出字符串中合适的那一部分

 

 

findall函数创建一个在被检查字符串内符合要求的子字符串列表

print p.findall("sd12fg23cvb45")
['sd', 'fg', 'cvb']

 

正则表达的一些参数

标志 含义
DOTALL, S 使 . 匹配包括换行在内的所有字符
IGNORECASE, I 使匹配对大小写不敏感
LOCALE, L 做本地化识别(locale-aware)匹配
MULTILINE, M 多行匹配,影响 ^ 和 $
VERBOSE, X 能够使用 REs 的 verbose 状态,使之被组织得更清晰易懂

 

X
VERBOSE


该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。当该标志被指定时,在 RE 字符串中的空白符被忽略,除非该空白符在字符类中或在反斜杠之后;这可以让你更清晰地组织和缩进 RE。它也可以允许你将注释写入 RE,这些注释会被引擎忽略;注释用 "#"号 来标识,不过该符号不能在字符串或反斜杠之后。

#!python
charref = re.compile(r"""
&[[]]		     # Start of a numeric entity reference
(
[0-9]+[^0-9]      # Decimal form
| 0[0-7]+[^0-7]   # Octal form
| x[0-9a-fA-F]+[^0-9a-fA-F] # Hexadecimal form
)
""", re.VERBOSE)

 

findall()函数的陷阱

 

findall()函数能够返回目标字符串中匹配正则的所有子字符串列表,的确很好用,但是在使用上有一个小陷阱,那就是分组(也就是如果正则中包含有“()”的内容,例如a([\d*])b),findall()就会返回符合“()”中的内容,而不是正则匹配的内容,如果想返回所有内容 就需要把整个正则用"()"包起来。

 

分享到:
评论

相关推荐

    Python正则表达式标准库使用教程.pdf

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。   ...

    第11.25节 Python正则表达式编译re.compile及正则对象使用.rar

    总结,`re.compile()`是Python正则表达式的重要工具,它使得我们可以预先编译正则表达式模式,提高程序的效率和可读性。通过创建正则表达式对象,我们可以灵活地执行多种正则操作,如查找、替换和分割字符串,从而在...

    python正则表达式使用指南

    【Python正则表达式使用指南】是一篇专为Python初学者设计的教程,旨在帮助读者理解和运用Python中的正则表达式。这篇文档采用中英文对照的方式,内容清晰易懂,适合快速学习和实践。 正则表达式是用于匹配字符串的...

    Python正则表达式基础

    Python正则表达式基础是学习如何在Python中应用正则表达式的入门指南。正则表达式,或称为REs、regexes、regexpatterns,是能够嵌入到Python中的一个精细、高度专业化的程序语言。通过re模块,程序员得以使用这一...

    python正则表达式_深入浅出

    ### Python正则表达式详解 #### 一、概述 Python中的正则表达式(re)模块提供了与Perl类似的正则表达式功能。无论是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这意味着该模块能够很好地处理各种字符...

    Python正则表达式操作指南.pdf

    ### Python正则表达式操作指南知识点总结 #### 一、Python正则表达式的引入与应用场景 - **Python正则表达式概述**: - **定义**:正则表达式(Regular Expression, RE)是一种用于匹配字符串中字符组合的工具,...

    Python正则表达式指南.pdf

    Python正则表达式是处理字符串的强有力工具,它拥有独立于Python语言本身的语法和独立的处理引擎。虽然正则表达式在处理字符串时效率上可能不及Python内建的字符串处理方法,但其功能强大且使用广泛。正则表达式的...

    清华大学精品Python学习PPT课件-第5章 Python正则表达式.pptx

    在Python中,使用`re`模块来处理正则表达式。一些常用功能包括: - `re.search(pattern, string)`:在字符串中查找第一个匹配的模式。 - `re.findall(pattern, string)`:找到所有匹配的子串,并返回列表。 - `re....

    python 正则表达式大全

    ### Python正则表达式大全 #### 一、概述 Python 的正则表达式库 `re` 提供了一系列功能强大的工具来处理字符串模式匹配任务。正则表达式是一种强大的文本处理工具,可以用来查找、替换符合特定模式的文本。在...

    Python正则表达式指南.docx

    Python 正则表达式指南是 Python 编程语言中对正则表达式的支持,包括正则表达式基础和 Python 正则表达式标准库的完整介绍及使用示例。 1. 正则表达式基础 正则表达式是一种强大的字符串处理工具,拥有自己独特的...

    python正则表达式匹配不包含某几个字符的字符串方法

    本文将分享如何使用Python正则表达式来匹配不包含特定字符集的字符串。 首先,我们来看一个基本的正则表达式匹配例子。假设我们要从一个字符串中找出所有以“https?”开头,后面跟着“://”,然后再以“.jpg”、“....

    Python正则表达式视频

    通过本视频教程的学习,你可以掌握Python正则表达式的基本用法,并能够将其应用于实际的爬虫项目中,有效提升数据提取的效率和准确性。无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。记得在学习过程中多...

    python 正则表达式 详解(英文)

    Python正则表达式是专门用于在字符串中匹配字符组合的一个强大的工具,它使用一种特殊的语法来表示搜索模式。正则表达式不仅在Python中有着广泛的应用,在UNIX世界中也扮演了重要的角色。本文档主要介绍Python中与...

    Shell与Python正则表达式参考

    Python的`re`模块提供了`search()`, `match()`, `findall()`, `sub()`等方法来执行正则表达式操作。 总之,正则表达式是处理字符串的强大工具,无论在Shell脚本还是Python编程中,都能帮助我们高效地处理文本数据,...

    python正则学习_python正则_pagedbm_python_正则表达式_

    Python正则表达式是Python编程语言中的一个强大工具,它用于处理字符串,执行模式匹配和文本提取。在Python中,正则表达式主要用于处理文本数据,例如从日志文件中提取特定信息,验证用户输入,或者从网页内容中抓取...

    Python基础入门知识之正则表达式学习 正则表达式30分钟入门教程 共21页.pdf

    这涉及到更高级的正则表达式用法,需要深入研究。 二十、还有些什么东西没提到 正则表达式还包括更多的高级特性,如预查`(?!...)`和后顾 `(?>...)`,以及更复杂的模式。 二十一、网上的资源及本文参考文献 为了...

    Python正则表达式(Regular Expression)

    Python正则表达式,也称为Regular Expression,在编程领域中是一种强大的文本处理工具,它能用于查找、替换或者提取符合特定模式的字符串。Python内置了`re`模块来支持正则表达式操作,使得在Python中使用正则表达式...

Global site tag (gtag.js) - Google Analytics