正则表达式怎么控制匹配的字符串更近的一个

http((?!http).)*m3u8

正则表达式怎么控制匹配的字符串更近的一个

正则如何匹配最近的字符 正则如何匹配最近的两个字符

怎么控制只要离字符串b匹配更近一点的字符串a

解释

a.b,它将会匹配最长的以a开始,以b结束的字符串 a.?b匹配最短的,以a开始,以b结束的字符串 我想要的是结合体, 匹配最长 但是最后要的是以最后一个a结尾,最后一个b结尾的字符串

正则表达式,它能够匹配最长的以第一个 a 开始,以最后一个 b 结束的字符串。这种需求通常需要使用贪婪匹配来获取最长的匹配,但同时又要确保匹配的是最后一个 a 和最后一个 b 之间的内容。

在正则表达式中,你可以使用一些技巧来达到这个目的,例如使用负向前视断言来排除过多的 ab,只匹配最后一个符合条件的片段。下面是一个示例的正则表达式:

Copy Codea((?!a).)*b

正则表达式解释:

  • a: 匹配字面字符 "a"。

  • ((?!a).)*: 这是一个贪婪匹配的子表达式,它会匹配任意字符,但是排除以 "a" 开头的字符序列。这样可以确保在最后一个 a 之后,匹配的字符不会再包含 a

  • b: 匹配字面字符 "b"。

这个正则表达式的逻辑是:从第一个 a 开始,尽可能多地匹配字符,直到最后一个 b 结束。由于使用了负向前视断言 (?!a),保证了匹配的字符序列中不会再出现 a,从而在文本中定位到最后一个 ab 之间的内容。

示例应用:

例如,对于字符串 "aabcababcb",这个正则表达式将匹配 "abcb",即从第一个 a 到最后一个 b 之间的最长字符序列。

在 C# 中使用这个正则表达式,你可以像之前示例那样,使用 Regex 类进行匹配和提取。

using System;
using System.Text.RegularExpressions;
​
class Program
{
    static void Main()
    {
        string input = "aabcababcb";
        
        string pattern = @"a((?!a).)*b";
​
        Regex regex = new Regex(pattern);
        Match match = regex.Match(input);
​
        if (match.Success)
        {
            string extractedString = match.Value;
            Console.WriteLine("Extracted string: " + extractedString);
        }
        else
        {
            Console.WriteLine("No matching string found.");
        }
    }
}
这段代码将输出匹配到的最长符合条件的字符串 "abcb"。

应用

http.m3u8,它将会匹配最长的以http开始,以m3u8结束的字符串 http.?m3u8匹配最短的,以http开始,以m3u8结束的字符串 我想要的是结合体, 匹配最长 但是最后要的是以最后一个http结尾,最后一个http结尾的字符串

 var url = request.Uri; var tet = "";
      if (url != null && url.EndsWith(".m3u8")||url.EndsWith(".mp4")&& qflagurl==true)
            { 
        tet = "webview2适配m3u8url捕获成功\n";  
        Sharing.setTips(tet);
        Match match = Regex.Match(url, @"http((?!http).)*m3u8", RegexOptions.Singleline);
        if (match.Success)
        {
          url = match.Value;
          //qflag3 = false;
​
        }

相关推荐

  1. 生成能够精确匹配字符串表达式

    2024-07-15 07:00:04       36 阅读
  2. 表达式 (用于灵活匹配文本表达式)

    2024-07-15 07:00:04       51 阅读
  3. Golang:字符串匹配简单使用

    2024-07-15 07:00:04       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 07:00:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 07:00:04       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 07:00:04       58 阅读
  4. Python语言-面向对象

    2024-07-15 07:00:04       69 阅读

热门阅读

  1. Bootstrap 栅格系统的工作原理?

    2024-07-15 07:00:04       24 阅读
  2. Nacos

    Nacos

    2024-07-15 07:00:04      24 阅读
  3. 中介者模式(大话设计模式)C/C++版本

    2024-07-15 07:00:04       27 阅读
  4. 软设之中介者模式

    2024-07-15 07:00:04       22 阅读
  5. Go语言指针及不支持语法汇总

    2024-07-15 07:00:04       22 阅读
  6. linux命令更新-iostat 和 iotop

    2024-07-15 07:00:04       22 阅读
  7. IOSUI自动化之mobiledevice

    2024-07-15 07:00:04       22 阅读
  8. Flask `before_request` 方法解析

    2024-07-15 07:00:04       26 阅读
  9. Hive常用内置函数合集

    2024-07-15 07:00:04       20 阅读