添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

正则表达式匹配最后一个字符

在正则表达式中,我们经常会用到一些特殊字符来表达不同的含义。其中一个常用的特殊字符是$,它表示匹配字符串的结尾位置。但是在有些情况下,我们并不想匹配整个字符串的结尾,而是只想匹配最后一个字符。那么该怎么办呢?接下来将介绍几种方法来匹配最后一个字符。


方法一:使用“贪婪”模式

通常情况下,正则表达式的匹配是“贪婪”的,即它会尽可能多地匹配符合条件的字符串。因此,在匹配最后一个字符时,我们只需要使用$符号即可。例如,我们想匹配一个字符串,该字符串以字母A开头,最后一个字符为数字8,那么我们可以使用如下正则表达式:

import re
pattern = r'^A.*8$'
text = 'ABCDEF237581'
match = re.match(pattern, text)
if match:
    print(match.group(0))
else:
    print("不匹配")

解释一下这个正则表达式:

  • ^:表示匹配字符串的开头
  • A:表示匹配字符串以字母A开头
  • .*:表示匹配所有字符(除了换行符)的0个或多个实例
  • 8:表示匹配数字8
  • $:表示匹配字符串的结尾
  • 上面的代码会输出:ABCDEF237581,因为该字符串以A开头,最后一个字符是8。

    方法二:使用非贪婪模式

    如果我们使用$符号进行匹配,那么会出现一个问题:它匹配的是整个字符串的结束位置,而不是最后一个字符的结束位置。如果我们只想匹配最后一个字符,应该怎么办呢?可以使用非贪婪模式。

    非贪婪模式可以通过在匹配字符后面加上?符号来实现。例如,我们想匹配一个字符串,该字符串以字母B开头,最后一个字符为数字9,那么可以使用如下正则表达式:

    import re
    pattern = r'^B.*?9$'
    text = 'BCDEFGH9'
    match = re.match(pattern, text)
    if match:
        print(match.group(0))
    else:
        print("不匹配")
    

    解释一下这个正则表达式:


  • ^:表示匹配字符串的开头
  • B:表示匹配字符串以字母B开头
  • .*?:表示匹配所有字符(除了换行符)的0个或多个实例,但是尽可能少地匹配
  • 9:表示匹配数字9
  • $:表示匹配字符串的结尾
  • 上面的代码会输出:BCDEFGH9,因为该字符串以B开头,最后一个字符是9。

    方法三:逆向匹配

    另外一个方法是使用逆向匹配。逆向匹配的意思是,从字符串末尾开始匹配,而不是从字符串开头开始匹配。在Python中,可以使用[::-1]语法来实现字符串的逆序。例如,我们想匹配一个字符串,该字符串以字母C开头,最后一个字符为字母F,那么可以使用如下代码:

    import re
    pattern = r'^F.*C$'
    text = 'CDEFGHIF'
    match = re.match(pattern, text[::-1])
    if match:
        print(match.group(0)[::-1])
    else:
        print("不匹配")
    

    解释一下这个正则表达式:

  • ^:表示匹配字符串的开头
  • F:表示匹配字符串以字母F开头
  • .*:表示匹配所有字符(除了换行符)的0个或多个实例
  • C:表示匹配字母C
  • $:表示匹配字符串的结尾
  • 最后,我们对匹配结果进行了逆序操作,以得到原始字符串中的匹配结果。上面的代码会输出:CDEFGHIF,因为该字符串以字母C开头,最后一个字符是F。

    本文介绍了三种方法来匹配正则表达式中的最后一个字符:贪婪模式、非贪婪模式和逆向匹配。在实际应用中,我们可以根据具体情况,选择使用不同的方法。

    正则表达式教程
    正则表达式:简介正则表达式匹配小数正则表达式与空行正则表达式正则表达式匹配空格正则表达式匹配多个空格正则表达式匹配一个空格正则表达式以什么开头正则表达式匹配开头和结尾正则表达式 /d正则表达式不以0开头正则表达式 任意字符正则表达式元字符正则表达式替换正则表达式取反正则表达式对汉字的匹配域名正则表达式姓名正则表达式正则表达式匹配多个字符串正则表达式 换行正则表达式 and正则表达式贪婪和非贪婪正则表达式?:和?=的区别正则表达式匹配正整数正则表达式限制输入正整数正则表达式忽略大小写正则表达式截取字符串正则表达式匹配逗号正则表达式括号正则表达式中括号正则表达式匹配括号内的内容正则表达式基础正则表达式转义用户名正则表达式两位小数正则表达式什么是金额正则表达式?正则表达式-分组统一社会信用代码正则表达式微信小程序正则表达式正则表达式反向匹配正则表达式排除字符串正则表达式不包含某个字符正则表达式 \d正则表达式 包含字符串正则表达式匹配网址正则表达式非数字正则表达式结尾匹配正则表达式匹配电话号码固定电话正则表达式400电话正则表达式正则表达式匹配最后一个字符正则表达式只匹配一次年月日正则表达式正则表达式入门正则表达式完全匹配正则表达式字母正则表达式与大写字母vim正则表达式gvim正则表达式正则表达式匹配标点符号正则表达式删除空行正则表达式限制字符长度WPS正则表达式年龄的正则表达式正则表达式正则表达式匹配双引号正则表达式awk正则表达式银行卡正则表达式最新MAC地址正则表达式EmEditor 正则表达式邮政编码正则表达式正则表达式最小匹配.net 正则表达式Groovy正则表达式正则表达式端口正则表达式纳税人识别号正则表达式sscanf正则表达式用法PCRE 正则表达式SQL Server正则表达式PyCharm正则表达式bash 正则表达式PowerShell 正则表达式正则表达式匹配第一个字符正则表达式 非空