首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在python中使用re模块时,使用\S$ match获得的结果将缺少字符串中的最后一个元素

在Python中使用re模块时,使用\S$ match获得的结果将缺少字符串中的最后一个元素。

re模块是Python中用于正则表达式操作的标准库。正则表达式是一种强大的模式匹配工具,可以用于字符串的搜索、替换、分割等操作。

\S表示匹配任意非空白字符,$表示匹配字符串的结尾。因此,\S$ match将匹配字符串中的最后一个非空白字符。

然而,由于$表示结尾,\S$ match将无法匹配字符串中的最后一个非空白字符,因为它后面没有结尾符号。为了解决这个问题,可以使用\S(?=$)来匹配最后一个非空白字符。

下面是一个示例代码:

代码语言:txt
复制
import re

string = "Hello, World!"
match = re.search(r'\S(?=$)', string)
if match:
    last_character = match.group()
    print("最后一个非空白字符是:", last_character)
else:
    print("字符串中没有非空白字符")

输出结果为:

代码语言:txt
复制
最后一个非空白字符是: !

在这个例子中,我们使用re.search函数来搜索字符串中与正则表达式模式匹配的第一个位置。通过使用\S(?=$)作为模式,我们成功地匹配到了字符串中的最后一个非空白字符"!"。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python正则表达式re模块简明笔记

正则表达式有多种不同风格,下表列出了适用于 Python 或 Perl 等编程语言部分元字符以及说明: re 模块 Python ,我们可以使用内置 re 模块使用正则表达式。...转义,所以上面的正则表达式 Python 应该写成 'python\.org',这会很容易陷入 \ 困扰,因此,我们建议使用 Python 原始字符串,只需加一个 r 前缀,上面的正则表达式可以写成...Pattern 对象 通过 Pattern 对象提供一系列方法对文本进行匹配查找,获得匹配结果一个 Match 对象) 最后使用 Match 对象提供属性和方法获得信息,根据需要进行其他操作...group]) 方法用于获取分组匹配子串整个字符串起始位置(子串第一个字符索引),参数默认值为 0; end([group]) 方法用于获取分组匹配子串整个字符串结束位置(子串最后一个字符索引...re 模块一般使用步骤如下: 使用 compile 函数正则表达式字符串形式编译为一个 Pattern 对象; 通过 Pattern 对象提供一系列方法对文本进行匹配查找,获得匹配结果一个

51850

Python 正则表达式

正则表达式有多种不同风格,下表列出了适用于 Python 或 Perl 等编程语言部分元字符以及说明: re 模块 Python ,我们可以使用内置 re 模块使用正则表达式。...函数 re 模块一般使用步骤如下: 使用 compile 函数正则表达式字符串形式编译为一个 Pattern 对象 通过 Pattern 对象提供一系列方法对文本进行匹配查找,获得匹配结果一个...]) 方法用于获得一个或多个分组匹配字符串,当要获得整个匹配子串,可直接使用 group() 或 group(0); start([group]) 方法用于获取分组匹配子串整个字符串起始位置...(子串第一个字符索引),参数默认值为 0; end([group]) 方法用于获取分组匹配子串整个字符串结束位置(子串最后一个字符索引+1),参数默认值为 0; span([group])...: 使用 compile 函数正则表达式字符串形式编译为一个 Pattern 对象; 通过 Pattern 对象提供一系列方法对文本进行匹配查找,获得匹配结果一个 Match 对象); 最后使用

83460
  • python模块re(正则表达式)

    maxsplit如果不为0,最多拆分maxsplit次,string参数余下部分将作为列表最后一个元素返回。如果在pattern中使用了分组(...),返回列表还会包含所有匹配分组本身。...;同样地,如果pattern字符串末尾匹配,返回列表最后一个元素是空字符串: >>> re.split(r'(\W+)', '...words, words...') ['', '...0) 使用pattern匹配原始字符串string,匹配到结果用repl替换,返回一个字符串。...返回Match对象一个或多个子分组。如果传入单个参数,返回单个字符串;如果传入多个参数,返回一个元组,元组每个元素代表每个参数对应分组。...,返回None 如果一个分组匹配多次,只返回最后一次匹配结果 >>> m = re.match(r"(\w+) (\w+)(\d+)?"

    1.1K61

    5分钟速览python正则表达式常用函数

    01 Re概览 Re模块python内置模块,提供了正则表达式python所有用法,默认安装位置python根目录下Lib文件夹(如 ..\Python\Python37\Lib)。...02 字符串查找/匹配 预编译:compile 介绍查找和匹配函数前,首先需要知道recompile函数,该函数可以一个模式串编译成正则表达式类型,以便后续快速匹配和复用 import re pattern...后续使用其他正则表达式函数,即可使用pattern进行方法调用。...#'today is 03/05/2020' re.sub一个变形方法是re.subn,区别是返回一个2元素元组,其中第一个元素为替换结果,第二个为替换次数 import re text =...04 总结 pythonre模块提供了正则表达式常用方法,每种方法都包括类方法调用(如re.match)或模式串实例调用(pattern.match)2种形式 常用匹配函数:match/fullmatch

    1K10

    Python 爬虫必备-正则表达式(re模块

    Python语法冲突,因此,Python用” \\ “表示正则表达式” \ “,因为正则表达式如果要匹配” \ “,需要用\来转义,变成” \ “,而Python语法又需要对字符串一个\进行转义...Python原生字符串很好地解决了这个问题,这个例子正则表达式可以使用r”\”表示。同样,匹配一个数字”\d”可以写成r”\d”。...对象,注意hello前面的r意思是“原生字符串”pattern = re.compile(r'hello') # 使用re.match匹配文本,获得匹配结果,无法匹配返回Noneresult1 =...group1可以使用编号也可以使用别名;编号0代表整个匹配子串;不填写参数,返回group(0);没有截获字符串组返回None;截获了多次组返回最后一次截获子串。...当repl是一个方法,这个方法应当只接受一个参数(Match对象),并返回一个字符串用于替换(返回字符串不能再引用分组)。 count用于指定最多替换次数,不指定时全部替换。

    59330

    python爬虫学习三:python正则

    b、正则表达式语法学习(参考网页吧) 2、re模块 python通过模块提供正则表达式支持。...使用re一般步骤是: s1、先将正则表达式字符串形式编译成Pattern实例; s2、然后使用Pattern实例处理文本并获得匹配结果一个Match实例); s3、最后使用Match实例获取信息,...flag可选值有: re.I:忽略大小写 re.M:多行模式 re.S:点任意匹配模式 re.L: re.U: re.X:详细模式 b、Match Match对象是一次匹配结果,包含了很多关于此次匹配信息...endpoe:结束搜索索引 lastindex:最后一个被捕获分组文本索引。如果没有被捕获分组,将为None。 lastgroup:最后一个被捕获分组别名。如没有,则为None。....]): 获得一个或多个分组截获字符串;指定多个参数将以元组形式返回。不写参数返回group(0). groups([default]): 以元组形式返回全部分组截获字符串

    76610

    Python 正则表达式 re 模块

    Python 自1.5版本起增加了re 模块,它提供 Perl 风格正则表达式模式。本文记录python re 模块使用方法。...re 模块也提供了与这些方法功能完全一致函数,这些函数使用一个模式字符串做为它们一个参数。 本章节主要介绍Python中常用正则表达式处理函数。...Match 对象,其中: group([group1, …]) 方法用于获得一个或多个分组匹配字符串,当要获得整个匹配子串,可直接使用 group() 或 group(0); start([group...]) 方法用于获取分组匹配子串整个字符串起始位置(子串第一个字符索引),参数默认值为 0; end([group]) 方法用于获取分组匹配子串整个字符串结束位置(子串最后一个字符索引...match in it: print (match.group() ) 输出结果: 12 32 43 3 re.split split 方法按照能够匹配子串字符串分割后返回列表,它使用形式如下

    47110

    一文搞懂 Python 正则表达式用法

    re 模块也提供了与这些方法功能完全一致函数,这些函数使用一个模式字符串做为它们一个参数。 正则表达式模式 模式字符串使用特殊语法来表示一个正则表达式: 字母和数字表示他们自身。...一个正则表达式模式字母和数字匹配同样字符串。 多数字母和数字前加一个反斜杠时会拥有不同含义。 标点符号只有被转义才匹配自身,否则它们表示特殊含义。 反斜杠本身需要使用反斜杠转义。...re模块 1.Re模块简介 re模块python处理正则表达式一个模块,通过re模块方法,把正则表达式pattern编译成正则对象,以便使用正则对象方法 效率问题: #!...Match 对象,其中: group([group1, …]) 方法用于获得一个或多个分组匹配字符串,当要获得整个匹配子串,可直接使用 group()或 group(0); start([group...]) 方法用于获取分组匹配子串整个字符串起始位置(子串第一个字符索引),参数默认值为 0; end([group]) 方法用于获取分组匹配子串整个字符串结束位置(子串最后一个字符索引

    1.1K30

    python 学习笔记(9)——Python 正则表达式

    Python 正则表达式 正则表达式是一个特殊字符序列,它能帮助你方便检查一个字符串是否与某种模式匹配。 Python 自1.5版本起增加了re 模块,它提供 Perl 风格正则表达式模式。...re 模块也提供了与这些方法功能完全一致函数,这些函数使用一个模式字符串做为它们一个参数。 本章节主要介绍Python中常用正则表达式处理函数。...]) 方法用于获得一个或多个分组匹配字符串,当要获得整个匹配子串,可直接使用 group() 或 group(0); start([group]) 方法用于获取分组匹配子串整个字符串起始位置...(子串第一个字符索引),参数默认值为 0; end([group]) 方法用于获取分组匹配子串整个字符串结束位置(子串最后一个字符索引+1),参数默认值为 0; span([group])...match in it: print (match.group() ) 输出结果: 12 32 43 3 re.split split 方法按照能够匹配子串字符串分割后返回列表,它使用形式如下

    61441

    Python正则表达式指南

    Python原生字符串很好地解决了这个问题,这个例子正则表达式可以使用r”\\”表示。同样,匹配一个数字”\\d”可以写成r”\d”。...2. re模块 2.1. 开始使用re Python通过re模块提供对正则表达式支持。...使用re一般步骤是先将正则表达式字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果一个Match实例),最后使用Match实例获得信息,进行其他操作。...print m.group() re模块还提供了一个方法escape(string),用于string正则表达式元字符如*/+/?等之前加上转义符再返回,需要大量匹配元字符时有那么一点用。...endpos: 文本中正则表达式结束搜索索引。值与Pattern.match()和Pattern.seach()方法同名参数相同。 lastindex: 最后一个被捕获分组文本索引。

    98370

    Python学习笔记之Python正则表达式指南

    Python原生字符串很好地解决了这个问题,这个例子正则表达式可以使用r"\\"表示。同样,匹配一个数字"\\d"可以写成r"\d"。...2. re模块 2.1. 开始使用re Python通过re模块提供对正则表达式支持。...使用re一般步骤是先将正则表达式字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果一个Match实例),最后使用Match实例获得信息,进行其他操作。...print m.group() re模块还提供了一个方法escape(string),用于string正则表达式元字符如*/+/?等之前加上转义符再返回,需要大量匹配元字符时有那么一点用。...当repl是一个方法,这个方法应当只接受一个参数(Match对象),并返回一个字符串用于替换(返回字符串不能再引用分组)。

    58410

    python之标准库

    (windows) >>>import sys >>>sys.path.append('c:/python') unix系统,不能只简单字符串‘~/python’添加到sys.path,必须使用完整路径.../usr/dict/words进行测试,以获得一个随机单词: $python fortune.py /usr/dict/words dodge 最后一个例子,假设你希望程序能够每次敲击回车时候都为自己发一张牌...最后,为了让python每次按回车时候都给你发一张牌,直到发完为止,那么只需要创建一个while循环即可。...3.最终,再次获得原始版本-------没有‘d’ 为了正确使用shelve模块修改存储对象,必须将临时变量绑定到获得副本上,并且它被修改后重新存储这个副本: >>>temp = s['x']...所有field_pat匹配项用re.sub替换函数进行替换,并且打印结果

    82210

    【珍藏版】长文详解python正则表达式

    方法2: (1)使用compile 函数正则表达式字符串形式编译为一个 Pattern 对象; (2)通过 Pattern 对象提供一系列方法对文本进行匹配查找,获得匹配结果一个 Match 对象...); (3)最后使用 Match 对象提供属性和方法获得信息,根据需要进行其他操作。...(2)Pattern对象:sub(repl, string[, count]) 当repl为字符串,可以用\id形式引用分组,但不能使用编号0;当repl为函数,返回字符串不能再引用分组。...使用语法如下: Pattern对象:subn(repl, string[, count]) 返回一个元组,元组第一个元素和sub函数结果相同,元组第二个元素返回替换次数。 例子: ? 小结: 1..../huxi/archive/2010/07/04/1771073.html 最后,推荐一个更强大正则表达式引擎-pythonregex模块

    84020

    python正则表达式

    Pythonre模块 python,我们可以使用内置re模块使用正则表达式。...\tpython' re模块一般使用步骤如下: 使用compile()函数正则表达式字符串形式编译为一个Pattern对象 通过Pattern对象提供一系列方法文本进行匹配查找,获得匹配结果...(一个Match对象) 最后使用Match对象提供属性和方法获得信息,根据需要进行其他操作。...,当要获得整个匹配字符串子串,可直接使用group()或group(0); start([group])方法用于获取分组匹配子串整个字符串起始位置(子串第一个字符索引),参数默认值为0...; end([group])方法用于获取分组匹配子串整个字符串结束位置(子串最后一个字符索引+1),参数默认值是0 span([group])方法返回(start[group], end

    1.1K61

    Python爬虫(十)_正则表达式

    Pythonre模块 python,我们可以使用内置re模块使用正则表达式。...\tpython' re模块一般使用步骤如下: 使用compile()函数正则表达式字符串形式编译为一个Pattern对象 通过Pattern对象提供一系列方法文本进行匹配查找,获得匹配结果...(一个Match对象) 最后使用Match对象提供属性和方法获得信息,根据需要进行其他操作。...,当要获得整个匹配字符串子串,可直接使用group()或group(0); start([group])方法用于获取分组匹配子串整个字符串起始位置(子串第一个字符索引),参数默认值为0...; end([group])方法用于获取分组匹配子串整个字符串结束位置(子串最后一个字符索引+1),参数默认值是0 span([group])方法返回(start[group], end

    1K60

    第一章:正则表达式

    特殊元字符   三. python3re模块方法   四. python3re模块练习   五. 第一章课后练习题   六. re模块综合应用之计算器 一....我们真正开始正则表达式之前,我们首先要了解一个工具,那就是pythonre模块,快速了解,只需要知道通过这个模块我们可以查看写出来正则表达式是否准确就可以了。...只要是匹配成功就添加到列表最后返回一个列表 match: >>> re.match('foo', 'food on the table').group() # 从字符串开头开始匹配,匹配到了foo...(1).没有分组情况下,每一个被匹配元素都会作为列表元素   (2).分组情况下,被匹配元素会把子组放在一个元组中放在列表(比较绕,直接上例子) (1)没有分组情况下 s = 'This...print(re.split(':', 'str1:str2:str3')) # 结果: # ['str1', 'str2', 'str3']  四. python3re模块练习  练习一: 择一匹配多个字符串

    1.2K20

    四、正则表达式re模块 常用匹配规则:Python re 模块也可以直接用re.match(),re.search(),re.findall(),re.finditer(),re.sub()

    匹配括号内表达式,也表示一个Python re 模块 Python ,我们可以使用内置 re 模块使用正则表达式。...re 模块一般使用步骤如下: 1、使用 compile() 函数正则表达式字符串形式编译为一个 Pattern 对象     compile 函数   compile 函数用于编译正则表达式,生成一个...Match 对象,其中:     group([group1, …]) 方法用于获得一个或多个分组匹配字符串,当要获得整个匹配子串,可直接使用 group() 或 group(0);     start...然而,大多数时候,我们需要搜索整个字符串获得所有匹配结果。     ...3、最后使用 Match 对象提供属性和方法获得信息,根据需要进行其他操作 也可以直接用re.match(),re.search(),re.findall(),re.finditer(),re.sub

    3K41

    Python正则表达式指南

    2. re模块 2.1. 开始使用re Python通过re模块提供对正则表达式支持。...使用re一般步骤是先将正则表达式字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果一个Match实例),最后使用Match实例获得信息,进行其他操作。 ?...re模块还提供了一个方法escape(string),用于string正则表达式元字符如*/+/?等之前加上转义符再返回,需要大量匹配元字符时有那么一点用。 2.2....Match Match对象是一次匹配结果,包含了很多关于此次匹配信息,可以使用Match提供可读属性或方法来获取这些信息。 属性: 1.string: 匹配使用文本。...5.lastindex: 最后一个被捕获分组文本索引。如果没有被捕获分组,将为None。 6.lastgroup: 最后一个被捕获分组别名。

    1.1K50

    python中常用模块总结

    6 %d 一个月中第几天(01 - 31) 7 %H 一天第几个小时(24小制,00 - 23) 8 %I 第几个小时(12小制,01 - 12...其实就是os.path.split(path)一个元素 22 os.path.basename(path) 返回path最后文件名。如何path以/或\结尾,那么就会返回空值。...) 返回path所指向文件或者目录最后修改时间 6、 sys模块 1 sys.argv 命令行参数List,第一个元素是程序本身路径 2 sys.exit(n)...退出程序,正常退出exit(0) 3 sys.version 获取Python解释程序版本信息 4 sys.path 返回模块搜索路径,初始化时使用PYTHONPATH....group() 结果 '\t' r代表取消引号里面特殊字符意义 最常用匹配语法: re.match从头开始匹配 re.search匹配包含 re.findall把所有匹配到字符放到以列表元素返回

    1.2K90
    领券