当前位置: 首页 > 知识库问答 >
问题:

正则表达式-从X到下一个Y捕获所有内容

夏昊
2023-03-14

我在PHP中的正则表达式方面遇到了一些问题。我试图实现的是在字符串中包含占位符标记,然后用值替换这些占位符标记。

我使用以下语法。

你好{{username}}!您的订单ID是{{order}}。

由于对正则表达式没有什么经验,我使用了在线正则表达式测试环境Regex101,并提出了以下表达式。

({{(?:.*?)(?:property)(?:.*?)}})

这很有效,直到我在一行中使用了多个标记并意识到表达式中的一个巨大缺陷。我明白表达式是如何评估的,并用我的理解标记了下面的图像(如果我错了请纠正我)。

我想我离我试图实现的目标不远了,但是我不知所措,所以任何帮助都是值得的。

模式中包含的令牌内需要有属性名称,在属性上方的图像中是电子邮件。

感谢任何帮助!

正则表达式101:https://regex101.com/r/7Ezep5/1

共有1个答案

楚流觞
2023-03-14

简而言之:

<代码> 匹配任何内容(新行除外)。将其更改为[^}]表示除}以外的任何内容。喜欢

({{(?:[^}]*?)(?:email)(?:[^}]*?)}})

一、 e.如果它没有在}之前找到字符串电子邮件,则失败。

检查更新的regex101。

 类似资料:
  • 问题内容: 使用(jdk 1.6),在给定以下代码的情况下,应用于主题字符串的正则表达式将仅捕获而不应捕获(模式)正则表达式: 奇怪的是,另一个类似的正则表达式(如应用于主题字符串)捕获组0和1,但不捕获组2。 相反,通过使用JavaScript的RegExp对象,可以将完全相同的正则表达式应用于完全相同的主题字符串,从而捕获所有组。我通过使用以下在线测试器亲自检查并重新检查了这一事实: http

  • 假设我有这个虚拟URL,我需要提取植物及其颜色作为 下面的I have正在按预期捕获我需要的元素,但是当我的URL中的植物少于4株时,它无法捕获任何东西。底部有一个指向regex测试员的链接,其中有示例代码和URL,您可以使用。 如何修改这个正则表达式,使其动态工作,从而在不需要静态URL结构的情况下捕获可用内容。现在,假设我最多只能捕获4株植物(8组) https://regex101.com/

  • 我有一个工作正则表达式来提取一些信息。php代码如下所示: https://ideone.com/UdIaA7 与str:https://regex101.com/r/rF0uP7/5 带有str2的正则表达式:https://regex101.com/r/cV6iF9/1 然而,它在str上工作得很好,但在str2上却不匹配,我找不到原因

  • 我有一个字符串,可以通过以下方式格式化: 我试图(分别)捕获: 这是我的正则表达式:(也可能是,因为我不关心完整的捕获,只关心它的各个部分)。它捕获: 或(备用) 我不太明白如何让重复捕获组捕获所有单个实例,而不是整个事物,并且只是最后一个实例或只是最后一个实例。

  • 问题内容: 我正在尝试使用Java expr在:之后捕获正确的部分,但是在以下代码中,打印的捕获组是整个字符串,怎么了? 问题答案: 子组的编号从1开始,全文为0。只需循环执行count + 1。

  • 我只想在空格字符()后面跟一个哈希()时匹配空格字符。 这就是下面的试图做的,这是一个捕获组。(我试图避开括号,否则括号在组集中无法正确识别)。然而,这是行不通的。 下面的正则表达式 符合以下所有条件 而我想分别搭配和 有没有办法在字符集中指定捕获组?