python正则表达式之对号入座篇
作者:manbayiout 发布时间:2021-03-31 17:59:55
一、定义
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。如果找到了符合这样一种规则的字符串,我们就说匹配上了,否则匹配失败。
二、匹配规则
1.语法规则
2.相关注解
a.反斜杠问题
假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。其匹配过程如下:
字符 | 匹配过程 |
\\\\abc | 为字符串实值取消反斜杠转义 |
\\abc | 为re.compile()取消反斜杠转义 |
\abc | 欲匹配的目标字符串 |
为了解决输入四个“\”的麻烦,我们可以使用python里的原生字符串(raw string),即在字符串前面加上r。如下:
import re
print(re.search(r"\\abc","123\\abc"))
从上面可知,使用原生字符串就省去了从字符串实值到re编译器的字符串转义过程,而编译器编译的时候仍然要转义。
b.贪婪匹配与非贪婪匹配
贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如:
import re
print(re.match("ab.*c","abcdfghc"))
匹配的结果为整个字符串。而非贪婪匹配就是匹配到结果就好,最少地匹配字符。python默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。
import re print(re.match("ab.*?c","abcdfghc"))
这样匹配的结果就是“abc”。
三、模块和函数
re模块
compile()编译语法规则
match() 从字符串开头位置开始匹配
search() 从字符串任意位置匹配到第一个符合规则的字符串
findall 以列表形式返回所有匹配到的字符串
finditer 以迭代器形式返回所有匹配到的字符串
split() 拆分字符串
group() 获取匹配到的字符串的分组信息
四、特殊构造的规则
总结
以上所述是小编给大家介绍的python正则表达式之对号入座篇网站的支持!
来源:http://www.cnblogs.com/cxy-learning/p/9354950.html
猜你喜欢
- 教育信息化时代,考试成绩也要求上网公布。一次我将考试成绩制作成一个HTML文件,如图1所示,领导审查的意见是“将成绩按名次排列”,可是所有的
- 引言在经历过一些尝试之后,觉得在当下的项目中运用链路压测的能力,不等着其他人了。链路这个词其实不如路径通俗易懂,跟产品沟通这个比较有效率。具
- 来源:奥索网 桌面中心(二)数据库写入作者:elong 一、以下是数据库的写入的html程序,你可以加入密码功能。把密码做成变量发入下面那个
- 一. 抛出异常Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,
- 代码如下import matplotlib.pyplot as pltimport numpy as npdef test4(): &nbs
- 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义cl
- 希望对您有所帮助!推荐:[精品]ASP中常用的22个FSO文件操作函数 <%@ Language=VBScript
- Python中遍历列表有以下几种方法:一、for循环遍历lists = ["m1", 1900, "m2&qu
- 简介正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。正则表达
- 具体用到了matplotlib.backends.backend_qt5agg.FigureCanvasQTAgg直接上代码(这里给出的只是
- 1、介绍在爬虫中经常会遇到验证码识别的问题,现在的验证码大多分计算验证码、滑块验证码、识图验证码、语音验证码等四种。本文就是识图验证码,识别
- 自己写的方法,适用于linux,#!/usr/bin/python#coding=utf-8import sysimport os, os.
- 需求背景:进行分值计算。如下图,如果只是一两个还好说,写写判断,但是如果有几十个,几百个,会不会惨不忍睹。而且,下面的还是三种情况。例如:解
- 今天在看见了一堆不错的非洲的web 2.0网站的Logo,于大家一起欣赏:非洲web2.0网站的logo大部分和平时看见的web2.0网站l
- 最近在研究WEB布局,遇到<H1>标签了,<H1>标签很重要。在一般教程中都这么说,<H1>标签在同一页
- table.rows集合中是cell对象 cell.innerHTML = "<td>123</td>&q
- 用户习惯大家都经常在提,习惯源于何出?回答可以是软件的用户习惯源于其不断使用过程中的印象积累。如果是这个软件刚诞生的时候呢?于是就得参考同类
- 引用类型(Reference)在许多计算机语言中都被使用,而且是作为一个非常强大而实用的特性存在。它有类似指针(Pointer)的实现,却又
- 一、前言这里我先为大家提供一个中文网站,大家可以下去更深入的学习。https://pypi.org/project/pypinyin/pyp
- 一:绑定方法:其特点是调用方本身自动作为第一个参数传入1.绑定到对象的方法:调用方是一个对象,该对象自动传入2.方法绑定到类:调用方是类,类