教你学会使用Python正则表达式
作者:米乐果果 发布时间:2023-01-17 14:08:56
今天写爬虫偶然想到了初学正则表达式时候,看过一篇文章非常不错。检索一下还真的找到了。
re模块
re.search
经常用match = re.search(pat, str)的形式。因为有可能匹配不到,所以re.search()后面一般用if statement。
re.match
re.match和re.search很相似,只是re.match是从字符串的开头开始匹配。
常用正则字符意义 a, X, 9,等字符匹配自己, 元字符不匹配自己,因为有特殊意义,比如 . ^ $ * + ? { }[ ] \ | ( ) . 英文句号,匹配任意字符,不包含'\n' \w 匹配'word'字符,[a-zA-Z0-9] \W 匹配非'word'字符 \b 匹配'word'和'non-word'之间边界 \s 匹配单个whitespace字符,space, newline, return, tab, form [\n\r\t\f] \S 匹配non-whitespace字符 \t, \n, \r 匹配tab, newline, return \d 匹配数字[0-9] ^ 匹配字符串开头 $ 匹配字符串结尾 重复
‘+' 一或多次, ‘*' 零或多次, ‘?' 零或一次
方括号[]
[]类似于or
Square brackets can be used to indicate a set of chars, so [abc] matches 'a' or 'b' or 'c'.
Group Extraction圆括号()
有时候需要提取匹配字符的一部分,比如刚才的邮箱,我们可能需要其中的username和hostname,这时候可以用()分别把username和hostname包起来,就像r'([\w.-]+)@([\w.-]+)',如果匹配成功,那么pattern不改变,只是可以用match.group(1)和match.group(2)来username和hostname,match.group()结果不变。
findall and groups
()和findall()结合,如果包括一或多个group,就返回a list of tuples。
给re.search加^之后是一样的。
re.sub
re.sub(pat, replacement, str)在str里寻找和pattern匹配的字符串,然后用replacement替换。replacement可以包含\1或者\2来代替相应的group,然后实现局部替换。
来源:http://developer.51cto.com/art/201709/550639.htm
猜你喜欢
- MySQL使用环境变量TMPDIR的值作为保存临时文件的目录的路径名。如果未设置TMPDIR,MySQL将使用系统的默认值,通常为/tmp、
- 最近在处理语音检索相关的事。 其中用到语音识别,调用的是讯飞与百度的api,前者使用js是实现,后者用python3实现(因为自己使用pyt
- 1.sonarqube是一款代码分析的工具,通过soanrScanner扫描后的数据传递给sonarqube进行分析2.sonarqube社
- 前言Python经常被称作“胶水语言”,因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库。在Python/wxPython环境下
- Python异常是在程序执行时发生的错误,可能会导致程序终止运行。在Python中,异常处理是一种机制,它允许开发人员在程序发生异常时捕获、
- 快速高效用:SET SQL_SAFE_UPDATES = 0;下面的就不要看了!今日用MySQL Workbench进行数据库的管理更新时,
- 基于上一篇文章,这篇文章是关于使用coverage来实现代码覆盖的操作实例,源代码在上一篇已经给出相应链接。本篇文章字用来实现代码覆盖的源代
- 本文实例为大家分享了Python实现猜拳游戏的具体代码,供大家参考,具体内容如下分析1.玩家从控制台输入内容2.电脑随机输出石头剪刀布3.判
- 获取输入的五个点画五边形def pentagonUpdate(): p = {} win = GraphWin(&q
- 简单的Tensorflow验证码识别应用,供大家参考,具体内容如下1.Tensorflow的安装方式简单,在此就不赘述了.2.训练集训练集以
- 前言:当你在MySQL中执行一条SQL时,语句并没有在你预期的时间内执行完成,这时候我们通常会登陆到MySQL数据库上查看是不是出了什么问题
- 1、场景1)用户输入完网址后,浏览器直接弹出需要输入用户名/密码PS:此时输入用户名密码即可登录,或者直接带着用户名密码访问网站。假设url
- 为了解决传统RNN无法长时依赖问题,RNN的两个变体LSTM和GRU被引入。LSTMLong Short Term Memory,称为长短期
- Anaconda简介Anaconda是一个方便的python包管理和环境管理软件,一般用来配置不同的项目环境。我们常常会遇到这样的情况,正在
- 今天我在练习python时,对字典里的键用sorted排序时发现并没有按照预期排序研究后发现字母大小写会影响排序首先创建一个字典,键里面的首
- 目录1. threding模块创建线程对象2. threding模块创建多线程3. 多线程的参数传递4. 线程产生的资源竞争1. thred
- 前言最近接手一个老项目,典型的 Vue 组件化前端渲染,后续业务优化可能会朝 SSR 方向走,因此,就先做些技术储备。如果对 Vue SSR
- 本文实例讲述了python中__call__内置函数的用法。分享给大家供大家参考。具体分析如下:对象通过提供__call__(slef, [
- 数字转成字符串方法一:使用格式化字符串:tt=322tem='%d' %tttem即为tt转换成的字符串常用的格式化字符串:
- if (reValue== undefined){ alert("undefined"); } 发现判断不出来,最后查了