`

python reg

阅读更多


正则表达式中特殊的符号:

“.” 表任意字符
“^ ” 表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实现决策树算法CART

    在Python中,我们可以使用scikit-learn库来实现CART算法。下面我们将详细探讨CART算法的原理、实现过程以及Python代码示例。 CART算法的基本原理: 1. **分裂标准**:CART算法采用基尼不纯度(Gini Impurity)或...

    Python爬虫程序设计KC18.pptx

    reg = r"\d+" ``` 3. **匹配方法**:`re`模块提供了一些函数,如`search()`和`findall()`,用于在字符串中查找匹配的模式。`search()`函数找到第一个匹配项并返回一个匹配对象,而`findall()`则返回所有匹配项的...

    python 启动器,解决执行py.exe启动时的问题

    python 启动器,解决执行py.exe启动时的问题 ...PythonCore.reg文件修改完毕后,双击PyLauncher.bat 导入注册表。 pythonfile.bat用于导出Python的注册表信息备份,重装系统或是纠错(我更喜欢看文本)。

    Python 3.10 下载 (含兼容win7补丁)

    (如果运行不了, 双击"重置sys.path.reg", 导入注册表) 2.双击"运行 IDLE (Python 3.10).bat", 检验IDLE运行是否正常。 3.打开cmd, 转到"Python安装目录\Scripts"目录下, 输入"pip install pygame", 检验pip运行...

    EWT-python.zip

    在Python中实现EWT,我们可以利用一些开源库,如`pyEWT`。 **Python编程语言** Python是一种高级编程语言,以其简洁的语法和丰富的库生态系统而闻名。在数据分析和科学计算领域,Python有诸如NumPy、SciPy、Pandas...

    Python 3.10 下载 (含兼容win7补丁)(32位版本)

    (如果运行不了, 双击"重置sys.path.reg", 导入注册表) 2.双击"运行 IDLE (Python 3.10).bat", 检验IDLE运行是否正常。 3.打开cmd, 转到"Python安装目录\Scripts"目录下, 输入"pip install pygame", 检验pip运行...

    Python 3.9 下载 (含兼容win7补丁)

    (如果运行不了, 双击"重置sys.path.reg", 导入注册表) 2.双击"运行 IDLE (Python 3.9).bat", 测试IDLE的运行。 3.打开cmd, 转到"Python安装目录\Scripts"目录下, 输入"pip install pygame", 测试pip和相关包的运行。

    Python 3.10 下载 (含兼容win7补丁) (第2版)

    (如果运行不了, 双击"重置sys.path.reg", 导入注册表) 2.双击"运行 IDLE (Python 3.10).bat", 测试IDLE的运行。 3.打开cmd, 转到"Python安装目录\Scripts"目录下, 输入"pip install pygame", 测试pip和相关包的...

    Python 3.9 下载 (含兼容win7补丁) (32位)

    (如果运行不了, 双击"重置sys.path.reg", 导入注册表) 2.双击"运行 IDLE (Python 3.9).bat", 检验IDLE运行是否正常。 3.打开cmd, 转到"Python安装目录\Scripts"目录下, 输入"pip install pygame", 检验pip运行是否...

    python rolling regression. 使用 Python 实现滚动回归操作

    滚动回归 所谓滚动回归,通常用在时间序列上...之前 python 的 pandas 与 statsmodels 库均支持滚动回归,但是现在两个都不支持。因此如果大家使用的是最新版的 pandas 与 statsmodels ,那么网上的那些做法均没有用。

    Python的2.7.9Windows64版本适合Python开发者开发Python程序

    Python是一种高级编程语言,以其简洁明了的语法和强大的功能深受开发者喜爱。2.7.9是Python的一个重要版本,尤其对于Windows 64位操作系统用户来说,这个版本的Python提供了一个稳定且高效的开发环境。在本文中,...

    Lin_reg_Diabetes.zip_machine learning_python_python diabetes

    标题中的“Lin_reg_Diabetes.zip”表明这是一个关于线性回归在糖尿病数据分析中的应用项目,主要使用Python编程语言。描述中提到的是通过Python实现机器学习算法。从标签“machine_learning”、“python”、“python...

    python-MySQLdb安装包

    另一个包在安装时若出现找不到python2.7的安装目录的话,可以先执行下reg.py,再安装就行了,前提是你的python2.7是64位版本的! master那个版本相信在linux上也能用的,各位可以试下!另一个只是windows版本的!

    Python使用正则表达式抓取网页图片的方法示例

    在Python编程中,正则表达式(Regular Expression)是一种强大的文本处理工具,常用于处理字符串。本示例将介绍如何利用Python的正则表达式库`re`来抓取网页中的图片链接,并下载这些图片。这种方法对于数据分析、...

    python 巧用正则寻找字符串中的特定字符的位置方法

    在Python编程语言中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能用于查找、替换或者提取符合特定模式的字符串。在本篇内容中,我们将深入探讨如何利用正则表达式来寻找字符串中特定字符的位置...

    Python库 | reg_resampler-2.1.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:reg_resampler-2.1.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python3 实现 判断图片中有无2D材料块图形 2D material reg

    Python3 提供了强大的图像处理库,如OpenCV和PIL,使得实现这样的功能变得相对容易。本项目的目标是通过编程来判断一张图片中是否存在2D材料块图形。下面将详细阐述这一过程涉及的Python图像识别技术。 首先,我们...

    python 利用正则表达式提取特殊信息

    print(re.sub(reg, '', text)) # 输出结果为:好吧E我aa们开始34学习python吧 ``` 6. 去掉大小写字母和数字 如果只想要特殊字符和符号,可以删除所有大小写字母和数字: ```python import re txt = ...

    python抓取网站的图片并下载到本地的方法

    Python是一种强大的编程语言,特别适合于网络数据抓取任务,包括从网站上抓取图片并保存到本地。在本文中,我们将深入探讨如何使用Python实现这个功能,主要涉及的库有`urllib`和`re`(正则表达式)。 首先,我们...

    python读取verilog头文件,有使用说明,测试记录,参考博客:

    本篇文章将围绕"python读取verilog头文件"这一主题,探讨如何使用Python进行Verilog文件的读取,并结合提供的资源进行详细讲解。 首先,`readRegFromVFile.py`是一个Python脚本,很可能实现了读取Verilog头文件...

Global site tag (gtag.js) - Google Analytics