正则表达式中特殊的符号:
“.” 表任意字符
“^ ” 表string起始
“$” 表string 结束
“*” “+” “?” 跟在字符后面表示,0个——多个, 1个——多个, 0个或者1个
*?, +?, ?? 符合条件的情况下,匹配的尽可能少//限制*,+,?匹配的贪婪性
{m} 匹配此前的字符,重复m次
{m,n} m到n次,m,n可以省略
举个例子 ‘a.*b’ 表示a开始,b结束的任意字符串
a{5} 匹配连续5个a
[] 表一系列字符 [abcd] 表a,b,c,d [^a] 表示非a
| A|B 表示A或者B , AB为任意的正则表达式 另外|是非贪婪的如果A匹配,则不找B
(…) 这个括号的作用要结合实例才能理解, 用于提取信息
\d [0-9]
\D 非 \d
\s 表示空字符
\S 非空字符
\w [a-zA-Z0-9_]
\W 非 \w
一:re的几个函数
1: compile(pattern, [flags])
根据正则表达式字符串 pattern 和可选的flags 生成正则表达式 对象
生成正则表达式 对象(见二)
其中flags有下面的定义:
I 表示大小写忽略
L 使一些特殊字符集,依赖于当前环境
M 多行模式 使 ^ $ 匹配除了string开始结束外,还匹配一行的开始和结束
S “.“ 匹配包括‘\n’在内的任意字符,否则 . 不包括‘\n’
U Make \w, \W, \b, \B, \d, \D, \s and \S dependent on the Unicode character properties database
X 这个主要是表示,为了写正则表达式,更可毒,会忽略一些空格和#后面的注释
其中S比较常用,
应用形式如下
import re
re.compile(……,re.S)
2: match(pattern,string,[,flags])
让string匹配,pattern,后面分flag同compile的参数一样
返回MatchObject 对象(见三)
3: split( pattern, string[, maxsplit = 0])
用pattern 把string 分开
>>> re.split(’\W+’, ‘Words, words, words.’)
['Words', 'words', 'words', '']
括号‘()’在pattern内有特殊作用,请查手册
4:findall( pattern, string[, flags])
比较常用,
从string内查找不重叠的符合pattern的表达式,然后返回list列表
5:sub( pattern, repl, string[, count])
repl可以时候字符串,也可以式函数
当repl是字符串的时候,
就是把string 内符合pattern的子串,用repl替换了
当repl是函数的时候,对每一个在string内的,不重叠的,匹配pattern
的子串,调用repl(substring),然后用返回值替换substring
>>> re.sub(r’def\s+([a-zA-Z_][a-zA-Z_0-9]*)\s*\(\s*\):’,
… r’static PyObject*\npy_\1(void)\n{’,
… ‘def myfunc():’)
’static PyObject*\npy_myfunc(void)\n{’
>>> def dashrepl(matchobj):
… if matchobj.group(0) == ‘-’: return ‘ ‘
… else: return ‘-’
>>> re.sub(’-{1,2}’, dashrepl, ‘pro—-gram-files’)
‘pro–gram files’
二:正则表达式对象 (Regular Expression Objects )
产生方式:通过 re.compile(pattern,[flags])回
match( string[, pos[, endpos]]) ;返回string[pos,endpos]匹配
pattern的MatchObject(见三)
split( string[, maxsplit = 0])
findall( string[, pos[, endpos]])
sub( repl, string[, count = 0])
这几个函数和re模块内的相同,只不过是调用形式有点差别
re.几个函数和 正则表达式对象的几个函数,功能相同,但同一程序如果
多次用的这些函数功能,正则表达式对象的几个函数效率高些
三:matchobject
通过 re.match(……) 和 re.compile(……).match返回
该对象有如下方法和属性:
方法:
group( [group1, ...])
groups( [default])
groupdict( [default])
start( [group])
end( [group])
说明这几个函数的最好方法,就是举个例子
matchObj = re.compile(r”(?P\d+)\.(\d*)”)
m = matchObj.match(’3.14sss’)
#m = re.match(r”(?P\d+)\.(\d*)”, ‘3.14sss’)
print m.group()
print m.group(0)
print m.group(1)
print m.group(2)
print m.group(1,2)
print m.group(0,1,2)
print m.groups()
print m.groupdict()
print m.start(2)
print m.string
输出如下:
3.14
3.14
3
14
(’3′, ‘14′)
(’3.14′, ‘3′, ‘14′)
(’3′, ‘14′)
{’int’: ‘3′}
2
3.14sss
所以group() 和group(0)返回,匹配的整个表达式的字符串
另外group(i) 就是正则表达式中用第i个“()” 括起来的匹配内容
(’3.14′, ‘3′, ‘14′)最能说明问题了。
分享到:
相关推荐
在Python中,我们可以使用scikit-learn库来实现CART算法。下面我们将详细探讨CART算法的原理、实现过程以及Python代码示例。 CART算法的基本原理: 1. **分裂标准**:CART算法采用基尼不纯度(Gini Impurity)或...
reg = r"\d+" ``` 3. **匹配方法**:`re`模块提供了一些函数,如`search()`和`findall()`,用于在字符串中查找匹配的模式。`search()`函数找到第一个匹配项并返回一个匹配对象,而`findall()`则返回所有匹配项的...
python 启动器,解决执行py.exe启动时的问题 ...PythonCore.reg文件修改完毕后,双击PyLauncher.bat 导入注册表。 pythonfile.bat用于导出Python的注册表信息备份,重装系统或是纠错(我更喜欢看文本)。
(如果运行不了, 双击"重置sys.path.reg", 导入注册表) 2.双击"运行 IDLE (Python 3.10).bat", 检验IDLE运行是否正常。 3.打开cmd, 转到"Python安装目录\Scripts"目录下, 输入"pip install pygame", 检验pip运行...
在Python中实现EWT,我们可以利用一些开源库,如`pyEWT`。 **Python编程语言** Python是一种高级编程语言,以其简洁的语法和丰富的库生态系统而闻名。在数据分析和科学计算领域,Python有诸如NumPy、SciPy、Pandas...
(如果运行不了, 双击"重置sys.path.reg", 导入注册表) 2.双击"运行 IDLE (Python 3.10).bat", 检验IDLE运行是否正常。 3.打开cmd, 转到"Python安装目录\Scripts"目录下, 输入"pip install pygame", 检验pip运行...
(如果运行不了, 双击"重置sys.path.reg", 导入注册表) 2.双击"运行 IDLE (Python 3.9).bat", 测试IDLE的运行。 3.打开cmd, 转到"Python安装目录\Scripts"目录下, 输入"pip install pygame", 测试pip和相关包的运行。
(如果运行不了, 双击"重置sys.path.reg", 导入注册表) 2.双击"运行 IDLE (Python 3.10).bat", 测试IDLE的运行。 3.打开cmd, 转到"Python安装目录\Scripts"目录下, 输入"pip install pygame", 测试pip和相关包的...
(如果运行不了, 双击"重置sys.path.reg", 导入注册表) 2.双击"运行 IDLE (Python 3.9).bat", 检验IDLE运行是否正常。 3.打开cmd, 转到"Python安装目录\Scripts"目录下, 输入"pip install pygame", 检验pip运行是否...
滚动回归 所谓滚动回归,通常用在时间序列上...之前 python 的 pandas 与 statsmodels 库均支持滚动回归,但是现在两个都不支持。因此如果大家使用的是最新版的 pandas 与 statsmodels ,那么网上的那些做法均没有用。
Python是一种高级编程语言,以其简洁明了的语法和强大的功能深受开发者喜爱。2.7.9是Python的一个重要版本,尤其对于Windows 64位操作系统用户来说,这个版本的Python提供了一个稳定且高效的开发环境。在本文中,...
标题中的“Lin_reg_Diabetes.zip”表明这是一个关于线性回归在糖尿病数据分析中的应用项目,主要使用Python编程语言。描述中提到的是通过Python实现机器学习算法。从标签“machine_learning”、“python”、“python...
另一个包在安装时若出现找不到python2.7的安装目录的话,可以先执行下reg.py,再安装就行了,前提是你的python2.7是64位版本的! master那个版本相信在linux上也能用的,各位可以试下!另一个只是windows版本的!
在Python编程中,正则表达式(Regular Expression)是一种强大的文本处理工具,常用于处理字符串。本示例将介绍如何利用Python的正则表达式库`re`来抓取网页中的图片链接,并下载这些图片。这种方法对于数据分析、...
在Python编程语言中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能用于查找、替换或者提取符合特定模式的字符串。在本篇内容中,我们将深入探讨如何利用正则表达式来寻找字符串中特定字符的位置...
资源分类:Python库 所属语言:Python 资源全名:reg_resampler-2.1.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Python3 提供了强大的图像处理库,如OpenCV和PIL,使得实现这样的功能变得相对容易。本项目的目标是通过编程来判断一张图片中是否存在2D材料块图形。下面将详细阐述这一过程涉及的Python图像识别技术。 首先,我们...
print(re.sub(reg, '', text)) # 输出结果为:好吧E我aa们开始34学习python吧 ``` 6. 去掉大小写字母和数字 如果只想要特殊字符和符号,可以删除所有大小写字母和数字: ```python import re txt = ...
Python是一种强大的编程语言,特别适合于网络数据抓取任务,包括从网站上抓取图片并保存到本地。在本文中,我们将深入探讨如何使用Python实现这个功能,主要涉及的库有`urllib`和`re`(正则表达式)。 首先,我们...
本篇文章将围绕"python读取verilog头文件"这一主题,探讨如何使用Python进行Verilog文件的读取,并结合提供的资源进行详细讲解。 首先,`readRegFromVFile.py`是一个Python脚本,很可能实现了读取Verilog头文件...