正则表达式中从末尾开始的最短匹配

2024-04-01

给定一个输入字符串fooxxxxxxfooxxxboo我正在尝试编写一个匹配的正则表达式fooxxxboo即从第二个 foo 开始直到最后一个 boo。

我尝试了以下方法

foo.*?boo匹配完整的字符串fooxxxxxxfooxxxboo

foo.*boo也匹配完整的字符串fooxxxxxxfooxxxboo

我读了这个贪婪、不情愿、占有量词 https://stackoverflow.com/questions/5319840/greedy-vs-reluctant-vs-possessive-quantifiers/5319978#5319978我理解它们的区别,但我试图匹配末尾最短的字符串,该字符串与正则表达式匹配,即类似要从后面求值的正则表达式。 有什么办法可以只匹配最后一部分吗?


Use 否定前瞻断言 http://www.regular-expressions.info/lookaround.html.

foo(?:(?!foo).)*?boo

DEMO https://regex101.com/r/nL5yL3/8

(?:(?!foo).)*?- 任何字符的非贪婪匹配,但不是foo零次或多次。也就是说,在匹配每个字符之前,它会检查该字符是否不是字母f随后是两个o的。如果是,则只匹配对应的字符。

为什么使用正则表达式foo.*?boo匹配完整的字符串fooxxxxxxfooxxxboo?

因为第一个foo在你的正则表达式中匹配foo字符串和以下内容.*?将对字符串进行非贪婪匹配boo,所以我们有两个匹配fooxxxxxxfooxxxboo and fooxxxboo。由于第二个匹配项出现在第一个匹配项中,因此正则表达式引擎仅显示第一个匹配项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式中从末尾开始的最短匹配 的相关文章

  • 正则表达式匹配 JWT

    我没有正则表达式的经验 我请求你的帮助 我需要一个正则表达式来捕获以下字符串中的 JWT contextJwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 eyJzdWIiOiJIZWxsbyB5b3UiLCJ
  • 在 .NET 中使用正则表达式提取 URL

    我从以下 URL 中的示例中获得了灵感csharp 在线 http en csharp online net CSharp Regular Expression Recipes E2 80 94Extracting Groups from
  • R strsplit:根据字符分割,除非后面有特定字符

    假设我有一个字符串向量 例如 split these c File Location C Documents File Location Pete s Computer File Location 我想根据 分割该向量中的每个元素 除非后面
  • 如何用该单词的单一版本替换重复单词

    我正在尝试使用 C 处理似乎使用语音转文本的文字记录 我遇到的一个主要问题是重复单词和 或短语 我很想使用正则表达式来替换它们 这里有些例子 我我我真的很想去 但是我不去 去不了 我真的很想使用正则表达式替换 所以它会变成这样 我真的很想去
  • 正则表达式删除带有数字的单词

    我想删除产品名称中带有数字 参考 或小单词 2 个或更少字符 的单词 但我找不到好的正则表达式 一些例子 链式防回弹ECS 2035 应成为 链式防反弹 指南 35 厘米俄勒冈 Intenz 应该成为 俄勒冈州 Intenz 指南 Tron
  • 正则表达式 - Python - 删除前导空格

    我使用正则表达式在文本文件中搜索 产品 一词 然后 我使用该搜索的起点和终点来查看该列并提取整数 有些实例 A 列 有我不想要的前导空格 我只想将数字 如 B 列中的数字 打印到文件中 没有前导空格 正则表达式中的正则表达式 有条件的 pr
  • QT C++ QRegularExpression 多个匹配

    我想使用正则表达式从 QString html 中提取信息 我明确想使用正则表达式 无解析器解决方案 和类Q正则表达式 http qt project org doc qt 5 0 qtcore qregularexpression htm
  • VS Code 多行搜索和替换 HTML / XML 标签? [复制]

    这个问题在这里已经有答案了 如何搜索可能包含多个非空行的开始和结束标记
  • 匹配不可打印/非 ASCII 字符并从文本中删除

    我的 JavaScript 很生疏 所以任何有关这方面的帮助都会很棒 我需要检测字符串中的不可打印字符 控制字符 如 SOH BS 等 以及扩展 ascii 字符 如 并将其删除 但我不知道如何编写代码 谁能指出我正确的方向来解决这个问题
  • 如何在文件夹中的 xml 文件中 grep 一个单词

    我知道我可以使用 grep 在这样的文件夹中的所有文件中查找单词 grep rn core 但我当前的目录有很多子目录 我只想搜索当前目录及其所有子目录中存在的所有 xml 文件 我怎样才能做到这一点 我试过这个 grep rn core
  • 在 Java/GWT 中解析用户时间输入

    解析用户在 GWT 中的文本字段中键入的时间的最佳方法是什么 默认时间格式要求用户完全按照区域设置指定的时间格式输入时间 我想要更加灵活 因为用户可以通过多种不同的方式输入时间 例如 8 8p 8pm 8 15pm 13 15 1315 1
  • 如何匹配与 Perl 中的特定模式不匹配的字符串?

    我知道使用正则表达式很容易匹配除给定字符之外的任何内容 text ab ac ad text s c g Match anything except c text is now c 我不知道如何 排除 字符串而不是字符 我如何 匹配除 ac
  • 句子中模糊的电子邮件地址

    我正在输出日志消息 需要隐藏其中的电子邮件地址 日志消息可能如下所示 A lead was saved for email protected cdn cgi l email protection Date 11th December 20
  • 正则表达式:如何获取组名称

    我有一个 NET 正则表达式 它看起来类似于
  • laravel 正则表达式验证不起作用

    我刚刚开始使用 laravel 正在努力验证我的表单之一中的文本区域 文本区域用于用户简介 因此我只想允许使用字母 数字 空格和以下字符 这就是我所拥有的 validator Validator make Input all array b
  • 由表达式文字生成的正则表达式是否共享单个实例?

    以下代码片段 来自 Crockford 的Javascript 好的部分 演示了由正则表达式文字创建的 RegExp 对象共享单个实例 function make a matcher return a gi var x make a mat
  • 如何在正则表达式中编写可选单词?

    我想编写一个识别以下模式的 java 正则表达式 abc def the ghi and abc def ghi 我试过这个 abc def the ghi 但是 它没有识别第二种模式 我哪里出错了 abc def the ghi 删除多余
  • 使用正则表达式验证电子邮件的最大长度

    我找到了用于电子邮件验证的正则表达式 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4 我希望电子邮件的最大长度为 20 个字符 因此我将其更改为 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4
  • 将 Regex 对象分配给 html 输入模式

    我需要以编程方式将正则表达式对象分配给输入元素模式属性 以下是我当前的实现 var regex d 5 element attr pattern regex toString slice 1 1 有没有更好的方法来做到这一点而不需要字符串操
  • 正则表达式中的零宽度元素是什么?

    最近 我在正则表达式中看到 零宽度元素 这些是什么 能不能把它们当作幽灵数据 这样对于替换 就不会被替换 对于 匹配 他们不会进入matches 1 matches 2 etc 是否有针对其各种用途的良好教程 他们已经在这里呆了很长时间了吗

随机推荐

  • Mysql CASE WHEN JOIN 语句错误

    Mysql查询 SELECT FROM pet info LEFT JOIN lostpets ON pet info id lostpets petid LEFT JOIN pet images ON pet info id pet im
  • 页面加载后部分渲染

    我有一个包含一些用户控件的页面 我想在回发后加载这些用户控件 就像 ajax 渲染一样 每个用户控件都显示数据库中的列表 我不希望用户在服务器代码构建响应时等待 我认为如果为用户显示页面并且在通过 ajax 请求加载用户控件之后 这将很有用
  • 如何在未来取消时终止 Callable 中的 CXF Web 服务调用

    Edit 这个问题现在已经经历了几次迭代 所以请随意查看修订版本 以了解有关历史和尝试过的事情的一些背景信息 我将 CompletionService 与 ExecutorService 和 Callable 一起使用 通过 CXF 生成的
  • 包含 jQuery 会导致标准 JavaScript 停止运行?

    我正在开始使用 jQuery 我一直在尝试将它与一些预先存在的 JavaScript 代码混合 这样我就不必重写所有内容 我读过很多地方都说这是完全可行的 然而 每当我包含任何 jQuery 行时 标准 JavaScript 就会停止运行
  • RubyKoans:破损的公案?

    可能是业余爱好者的标志 我想知道问题是否出在公案 而不是我 但是 考虑一下这个公案 def test calling global methods without parentheses result my global method 2
  • 取消 ChangeNotifier 内的 Firebase 监听器

    当我尝试取消 Firestore 侦听器时ProductsService cancel 我收到错误 错误 flutter lib ui ui dart state cc 209 未处理的异常 LateInitializationError
  • JSF 2.0 validateRegex 带有自己的验证器消息

    我有一个与此类似的代码
  • 控制 Akka 中消耗大量内存的 actor 的生成

    我使用 akka 的 actor 模型构建了一个分布式流机器学习模型 通过向 Actor 发送训练实例 训练数据 来异步训练模型 对这些数据的训练会占用计算时间并改变参与者的状态 目前我正在使用历史数据来训练模型 我想运行一堆不同配置的模型
  • 如何用时刻设置时区?

    我正在使用 moment 来获取服务器时间 moment tz setDefault Asia Kolkata var now new Date var p date moment tz now zone format 插入时间 p dat
  • 在 DevExpress 中计算 ASPxGridview 列

    我有一个ASPxGridview 通常是 21 列 但我只想要处理 4 列 每列都有一个十进制值 MV EDDIE列为空 我想要的是 以编程方式计算 MV EDDIE列是RISK EUR IPOTEK MV BERND 只有在GroupSu
  • Spring 3.1 @Cacheable - 方法仍然执行

    我正在尝试按照解释实现 Spring 3 1 缓存here http www javacodegeeks com 2011 02 spring 31 cache abstraction tutorial html and here http
  • 带条件的 foreach 循环

    我可以用多个条件进行循环 如下所示 for int i 0 condition1 condition2 conditionN i 有没有办法使用 foreach 来做到这一点 foreach var i in arr and while c
  • 入口点不能用“async”修饰符标记

    我从下面复制了代码this http blogs msdn com b csharpfaq archive 2012 06 26 understanding a simple async program aspx链接 但是当我编译这段代码时
  • JQuery,分层表分页

    多次询问分层表和表分页 但我正在寻找他们两个 我已经在我的应用程序中使用 JQuery 因此使用相同的插件将会很有用 但我愿意接受任何建议 目前 我设法使用一些 jQuery 插件来显示分层数据 并添加了我自己的分页方法 但它还不够 我正在
  • 使用 mysql-server docker 容器在多个服务器上创建 MySQL 集群

    我正在尝试使用以下命令创建一个包含 3 个节点的 MySQL 集群mysql 服务器 https hub docker com r mysql mysql server 码头集装箱 I have 3个独立的云实例并且 docker 已在所有
  • Kafka Connect - 删除带有配置的连接器?

    我知道如何删除 Kafka 连接器 如此处所述Kafka Connect 如何删除连接器 https stackoverflow com questions 48947250 kafka connect how to delete a co
  • Ruby:#map 对于 bang 方法通常没有意义,是吗?

    这个问题的灵感来自于这个问题 Ruby 为什么这种使用地图的方式会抛出错误 https stackoverflow com questions 41853364 ruby why does this way of using map thr
  • 收到 ValueError: invalidliteral for int() with base 10: '' 错误并且不知道为什么

    我知道以前曾问过这个问题 但就我的情况而言 我似乎无法弄清楚为什么会抛出这个问题 当我尝试运行计算时 控制台出现以下错误 ValueError invalid literal for int with base 10 它说它来自 File
  • ActiveRecord 在 Ruby 1.9.2-rc1 下以 ASCII-8Bit 返回数据

    进一步说明标题 当从 ActiveRecord 加载数据时 尽管我尽了最大努力强制编码 但编码始终设置为 ASCII 8Bit 我在这里输入了尽可能多的详细信息 以尝试构建一个好的错误报告 有人可以用来帮助我 该项目使用以下技术 帕德里诺框
  • 正则表达式中从末尾开始的最短匹配

    给定一个输入字符串fooxxxxxxfooxxxboo我正在尝试编写一个匹配的正则表达式fooxxxboo即从第二个 foo 开始直到最后一个 boo 我尝试了以下方法 foo boo匹配完整的字符串fooxxxxxxfooxxxboo f