iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么使用正则匹配最后一个字符串
  • 910
分享到

怎么使用正则匹配最后一个字符串

2023-06-14 12:06:00 910人浏览 泡泡鱼
摘要

这篇文章主要介绍了怎么使用正则匹配最后一个字符串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前几天遇到一个需求,输入的是<user>  &n

这篇文章主要介绍了怎么使用正则匹配最后一个字符串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

前几天遇到一个需求,输入的是

<user>    <user>        <name>a</name>    </user>    <user>        <name>a</name>    </user></user><passWord>123</password>

要求拿到

<user>    <user>        <name>a</name>    </user>    <user>        <name>a</name>    </user></user>

也就是去掉最后一个</user>后面的字符串。

方法有很多,我首先想到的是用正则匹配去掉</user>后面的字符串。

最后写出来的表达式是(?<=</user>)(?![\w\W]*</user>)[\w\W]+

首先用(?<=</user>)匹配所有前面是</user>的位置,如图,总共有三个位置。

怎么使用正则匹配最后一个字符串

这里我们正则表达式(?<=</user>)的意思就是匹配的位置之前的字符串是</user>,也就是我们匹配到的位置在</user>之后。

这里用到了正则表达式语法中的断言,有的书上也称该语法为预查或者环视,都是一样的用法。有如下语法:
(?=pattern) 零宽正向先行断言 (?!pattern) 零宽负向先行断言 (?<=pattern) 零宽正向后行断言 (?<!pattern) 零宽负向后行断言

这里用到的是(?<=pattern),零宽表示它匹配的是在字符串中的位置,如同^匹配字符串串首,$匹配字符串串尾。正向代表它必须满足pattern。后行代表它匹配的位置在pattern之后。

怎么使用正则匹配最后一个字符串

其次,再这三个位置上进行筛选,能够看出这三个位置的区别是后面是否有</user>,如果没有的话那么它就是最后一个</user>后面的位置。在之前的表达式后面添上(?![\w\W]*?</user>)此时表达式变为(?<=</user>)(?![\w\W]*?</user>)

怎么使用正则匹配最后一个字符串

能够看到得到了最后一个匹配结果。

这里的正则表达式(?!pattern) 是零宽负向先行断言,也就是它会往后匹配pattern,匹配到的位置在pattern之前,并且匹配到的字符串必须不满足pattern。

(?![\w\W]*?</user>)的意思是在匹配到的位置后面必须不是[\w\W]*?</user>,\w匹配的是[a-zA-Z0-9_]即匹配字母数字和下划线,而\W匹配的是[^a-zA-Z0-9_]即不是字母数字也不是下划线的字符,同时匹配这两个就相当于匹配任意字符。[\w\W]后面的*代表匹配0-任意多次,后面的?代表懒惰模式,即只要满足条件就立即返回。

最后,在之前的正则表达式后面加上[\w\W]+贪婪匹配即尽可能多的匹配该位置后面的字符串。最终的正则表达式是(?<=</user>)(?![\w\W]*?</user>)[\w\W]*

怎么使用正则匹配最后一个字符串

最后的最后用四张图简单地描述四种断言的不同之处。

这里输入的字符串都是123456。

(?=3),它匹配的位置是后面的字符为3的位置。

怎么使用正则匹配最后一个字符串 

(?<=3),它匹配的位置是前面的字符为3的位置。

怎么使用正则匹配最后一个字符串 

(?!3)匹配的位置是后面的字符不为3的位置,可以看到箭头所指的地方没有被匹配到,其他位置都被匹配到了。

怎么使用正则匹配最后一个字符串

(?<!3)匹配的位置是前面的字符不为3的位置,可以看到箭头所指的地方没有被匹配到,其他位置都被匹配到了。

怎么使用正则匹配最后一个字符串

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么使用正则匹配最后一个字符串”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: 怎么使用正则匹配最后一个字符串

本文链接: https://www.lsjlt.com/news/270825.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用正则匹配最后一个字符串
    这篇文章主要介绍了怎么使用正则匹配最后一个字符串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前几天遇到一个需求,输入的是<user>  &n...
    99+
    2023-06-14
  • 如何使用正则匹配最后一个字符串详解
    前几天遇到一个需求,输入的是 <user> <user> <name>a</name> </...
    99+
    2024-04-02
  • 如何用 Golang 正则匹配多个单词或字符串?
    golang 正则表达式使用管道符 | 来匹配多个单词或字符串,将各个选项作为逻辑 or 表达式分隔开来。例如:匹配 "fox" 或 "dog":fox|dog匹配 "quick"、"b...
    99+
    2024-05-14
    golang 正则 python
  • 正则表达式怎么匹配多个字符
    正则表达式可以使用特殊符号来匹配多个字符:1. 使用重复符号:可以使用`*`来匹配零个或多个字符,使用`+`来匹配一个或多个字符,使用``来匹配零个或一个字符。例如,正则表达式`ab*c`可以匹配字符串"ac"、"abc"、"abbc"...
    99+
    2023-08-11
    正则表达式
  • python3 re模块正则匹配字符串中
    匹配时间: # -*- coding:utf-8 -*- import re def parseDate(l): patternForTime = r'(\d{4}[\D]\d{1,2}[\D]\d{1,2}[\D])' ...
    99+
    2023-01-31
    正则 字符串 模块
  • 怎么使用正则表达式匹配不包含某些字符串
    要匹配不包含某些字符串,可以使用负向预查来实现。负向预查用`(!pattern)`的形式表示,其中`pattern`是要排除的字符串...
    99+
    2023-08-09
    正则表达式
  • JS正则匹配字符串的方法是什么
    本篇内容介绍了“JS正则匹配字符串的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!用 js 的search 和 match ,其中...
    99+
    2023-06-26
  • java怎么用正则表达式匹配与提取字符串
    本文小编为大家详细介绍“java怎么用正则表达式匹配与提取字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“java怎么用正则表达式匹配与提取字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先给出一个匹...
    99+
    2023-07-02
  • C#中如何使用正则表达式和字符串匹配
    C#中如何使用正则表达式和字符串匹配正则表达式是一种强大的文本处理工具,它可以帮助我们有效地在字符串中进行模式匹配和提取。在C#中,通过使用System.Text.RegularExpressions命名空间下的Regex类,我们可以轻松地...
    99+
    2023-10-22
    正则表达式 (Regex) 字符串匹配 (string matching) C#编程 (C# Programming)
  • 如何找出 Golang 正则表达式匹配的第一个子字符串?
    findstringsubmatch 函数可找出正则表达式匹配的第一个子字符串:该函数返回包含匹配子字符串的切片,第一个元素为整个匹配字符串,后续元素为各个子字符串。代码示例:regex...
    99+
    2024-05-13
    golang 正则表达式
  • Python正则表达式匹配字符串中的数字
    这篇文章主要介绍了Python正则表达式匹配字符串中的数字,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下1.使用“\d+”匹配全数字...
    99+
    2023-06-01
  • C#中怎么利用正则表达式匹配相关字符串
    今天就跟大家聊聊有关C#中怎么利用正则表达式匹配相关字符串,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。使用C#中使用正则表达式System.Text.RegularExpressi...
    99+
    2023-06-17
  • perl怎么匹配多个字符串
    在Perl中,可以使用正则表达式来匹配多个字符串。有多种方法可以实现这一点。 使用竖线(|)来表示或逻辑,例如:/string1...
    99+
    2023-10-21
    perl
  • python怎么匹配某一字符串
    在Python中,可以使用正则表达式来匹配某一字符串。可以使用`re`模块来进行正则表达式操作。下面是一个简单的示例,展示如何使用正...
    99+
    2023-08-30
    python
  • 怎么使用Java正则表达式匹配字符串并提取中间值
    今天小编给大家分享一下怎么使用Java正则表达式匹配字符串并提取中间值的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言有时...
    99+
    2023-07-02
  • PHP中的preg_match_all()函数:如何使用正则表达式匹配多个字符串
    PHP中的preg_match_all()函数:如何使用正则表达式匹配多个字符串,需要具体代码示例正则表达式是一种用来描述文本模式的工具,能够用来匹配、搜索或替换文本中符合某种模式的字符串。PHP中的preg_match_all()函数是一...
    99+
    2023-11-04
    PHP 正则表达式 preg_match_all()
  • php如何用正则匹配某个字符并删除
    这篇文章主要介绍了php如何用正则匹配某个字符并删除的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何用正则匹配某个字符并删除文章都会有所收获,下面我们一起来看看吧。两种方法:1、用preg_replac...
    99+
    2023-06-30
  • python正则表达式对字符串的查找匹配
    目录常用的RegEx基础语法常用的RegEx函数以下为部分示例:总结Python中的正则表达式要用到re模块,下面先介绍一下正则表达式需要用到的特殊字符和说明 常用的RegEx基础语...
    99+
    2024-04-02
  • PHP怎么交换字符串中第一个和最后一个字符
    这篇文章主要讲解了“PHP怎么交换字符串中第一个和最后一个字符”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP怎么交换字符串中第一个和最后一个字符”吧!本文主题是“编写一个 PHP 程序...
    99+
    2023-06-20
  • Java正则表达式循环匹配字符串方式
    目录正则表达式循环匹配字符串Java匹配正则表达式大全我们先举个例子来看看Java匹配正则表达式匹配表达式的特殊情况正则表达式循环匹配字符串 public static void m...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作