Python3 re.search()方法的具体使用

re.search()方法扫描整个字符串,并返回第一个成功的匹配。如果匹配失败,则返回None。

与re.match()方法不同,re.match()方法要求必须从字符串的开头进行匹配,如果字符串的开头不匹配,整个匹配就失败了;

re.search()并不要求必须从字符串的开头进行匹配,也就是说,正则表达式可以是字符串的一部分。

re.search(pattern, string, flags=0)
  • pattern : 正则中的模式字符串。
  • string : 要被查找替换的原始字符串。
  • flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

例1:

import re
content = 'Hello 123456789 Word_This is just a test 666 Test'
result = re.search('(\d+).*?(\d+).*', content)  

print(result)
print(result.group())    # print(result.group(0)) 同样效果字符串
print(result.groups())
print(result.group(1))
print(result.group(2))

结果:

<_sre.SRE_Match object; span=(6, 49), match='123456789 Word_This is just a test 666 Test'>
123456789 Word_This is just a test 666 Test
('123456789', '666')
123456789
666
 
Process finished with exit code 0

例2:只匹配数字

import re

content = 'Hello 123456789 Word_This is just a test 666 Test'
result = re.search('(\d+)', content)

print(result)
print(result.group())    # print(result.group(0)) 同样效果字符串
print(result.groups())
print(result.group(1))

结果:

<_sre.SRE_Match object; span=(6, 15), match='123456789'>
123456789
('123456789',)
123456789
 
Process finished with exit code 0

match()和search()的区别:

  • match()函数只检测RE是不是在string的开始位置匹配,
  • search()会扫描整个string查找匹配
  • match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none

举例说明:

import re
print(re.match('super', 'superstition').span())

(0, 5)

print(re.match('super','insuperable'))

None

print(re.search('super','superstition').span())

(0, 5)

print(re.search('super','insuperable').span())

(2, 7)

到此这篇关于Python3 re.search()方法的具体使用的文章就介绍到这了,更多相关Python3 re.search()内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python 使用re.search()筛选后 选取部分结果的方法

    使用group()方法 b = 'hello good fine' re.search(r'^hello\s(.*)\sfine',b).group() group() 会返回匹配此正则表达式的字符串 group(1) 会返回正则表达式中第一个括号内的内容, 以此类推,group(2) 第二个括号 re.search(r'^hello\s(.*)\sfine',b).group(1) * 如果需要筛选,则要在正则表达式里把 需要筛选的东西括上 以上这篇python 使用re.search()筛选

  • python正则表达式re.search()的基本使用教程

    1 re.search() 的作用: re.search会匹配整个字符串,并返回第一个成功的匹配.如果匹配失败,则返回None 从源码里面可以看到re.search()方法里面有3个参数 pattern: 匹配的规则, string : 要匹配的内容, flags 标志位 这个是可选的,就是可以不写,可以写, 比如要忽略字符的大小写就可以使用标志位 flags 的主要内容如下 flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为: re.I 忽略大小写 re.L 表示特殊字

  • 浅谈Python中re.match()和re.search()的使用及区别

    1.re.match() re.match()的概念是从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None. 包含的参数如下: pattern: 正则模型 string : 要匹配的字符串 falgs : 匹配模式 match() 方法一旦匹配成功,就是一个match object对象,而match object对象有以下方法: group() 返回被 RE 匹配的字符串 start() 返回匹配开始的位置 end() 返回匹配结束的位置 span()返

  • Python3 re.search()方法的具体使用

    re.search()方法扫描整个字符串,并返回第一个成功的匹配.如果匹配失败,则返回None. 与re.match()方法不同,re.match()方法要求必须从字符串的开头进行匹配,如果字符串的开头不匹配,整个匹配就失败了: re.search()并不要求必须从字符串的开头进行匹配,也就是说,正则表达式可以是字符串的一部分. re.search(pattern, string, flags=0) pattern : 正则中的模式字符串. string : 要被查找替换的原始字符串. flag

  • js正则表达式之search方法讲解

    功能:返回与正则表达式查找内容匹配的第一个子字符串的位置 语法:stringObj.search(rgExp) stringObj 必选项 rgExp正则表达式 返回值:search 方法指明是否存在相应的匹配.如果找到一个匹配,search方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置.如果没有找到匹配,则返回 -1 示例代码: 复制代码 代码如下: <html> <script language="javascript" type="text

  • javascript中的window.location.search方法简介

    window.location.search方法是截取当前url中"?"后面的字符串, 例如:index.php?act=doctor,截取后的字符串就是act=doctor

  • 基于js 字符串indexof与search方法的区别(详解)

    1.indexof方法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. 语法: 注意:有可选的参数(即设置开始的检索位置). 2.search方法 search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串. 注意:search方法可以根据正则表达式查找指定字符串(可以忽略大小写,并且不执行全局检索),同时没有可选参数(即设置开始的检索位置). 以上这篇基于js 字符串indexof与search方法的区别(详解)就是小编分享给大家的全部

  • 浅谈配置OpenCV3 + Python3的简易方法(macOS)

    我的电脑本来是有手动CMake+make安装的OpenCV3的,以及系统自带的python2.x,但是现在想用python3+OpenCV3. 安装Python3 brew install python3 没有homebrew的话请自行安装 不要使用pip3 一开始我使用 pip3 install numpy pip3 install opencv-python 虽然成功了,但是不能使用imshow及video相关的东西,要你何用. 删除原OpenCV 在原先CMake的build文件夹下使用

  • python3 线性回归验证方法

    如下所示: #-*- coding: utf-8 -*- import pandas as pd import numpy as np from patsy.highlevel import dmatrices #2.7里面是from patsy import dmatrices from statsmodels.stats.outliers_influence import variance_inflation_factor import statsmodels.api as sm impor

  • Atom Python 配置Python3 解释器的方法

    环境 Mac Python3.6.4 Atom 背景 Atom 执行Python Code 使用Script Package,执行快捷键cmd + i. 但是默认是执行Mac 系统的2.7 版本的Python. 配置 cmd + ,(cmd + 逗号) 快捷键 打开Settings,或者点击Atom→Preferences 打开Settings 点击Open Config Folder(会打开Atom 的Project) 打开 .atom/packages/script/lib/grammars

  • 阿里云 CentOS7.4 安装 Python3.6的方法讲解

    1.到python官网 https://www.python.org查找最新的原码,我使用的,Python-3.6.3 2.mkdir /home/soft 创建软件管理目录. 3.cd /home/soft/ 进入soft目录,因为我下一步是下载python的源码 4.wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz 下载Python-3.6.3的源码到/home/soft/里,如果没有安装wget 请执行下面的命令,

  • 对Python2与Python3中__bool__方法的差异详解

    学习Python面向对象编程的时候,遇到了一个很有意思的小问题.Python的__bool__方法不起作用的问题. 我反复读了我手中的教程,确认了我写的代码应该管用.可是在测试的时候却一直不通过,后来发现我实现的__bool__方法似乎并不是Python本身的接口. 代码如下: class Demo(): def __init__(self,value = 0): self.value = value def __bool__(self): return bool(self.value > 5)

  • windows下 兼容Python2和Python3的解决方法

    windows下同时安装了python2和python3时,都可以配置环境变量,如果在命令行里输入python命令,windows会去环境变量里寻找Python的安装位置,如果先找到pytoon2的,那么此时默认用python2,如果先找到python3,那么此时默认用python3. python命令调用 如果想要指定使用python2还是Python3,需要使用如下命令: py -2 启动python2 py -3 启动python3 注:使用此命令,python2和python3都需要配置

随机推荐