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

正则表达式,取后缀[重复]之前的最后一个匹配项

唐麒
2023-03-14

我知道这听起来像是被问了数百次的问题。但我已经搜索了一个多小时,我发现的解决方案都不适用于我的情况。

我有许多不同的表格号码

\d*'?\d \。\d\d

我使用的字符串示例是

基本项目费用为1'245.48,税费为18.45,奖金为250.00,总价为1'013.93。如有麻烦,请联系我们的电子邮件。银行账户784.45

我只想得到与我的正则表达式相对应的最后一个匹配项,即电子邮件,即1'013.93。我只想使用正则表达式,没有额外的pythonjavascript或任何东西

我尝试了受上次正则表达式启发的代码?,这是如何在正则表达式中只捕捉最后一个匹配项,这是如何查找最后一个出现的正则表达式单词,以及我自己的许多其他表达方式,但到目前为止似乎总是缺少一个部分

例如,在用(?!.*'?\d.\d)(?!.*'?\d.\d)成功选择最后一个数字后,我尝试了(\d*'?\d.\d)(?!.*\d*'?\d.\d)(?=电子邮件),这与任何内容都不匹配。

有什么见解吗?

共有2个答案

唐泳
2023-03-14

类似这样的内容,带有额外的数字格式检查:

((\d{1,3}')*(\d{1,3})\.\d{2})(?=\D+e-mail)

演示

梁兴修
2023-03-14

你可以试试这个:

((\d+')?\d+(\.\d+)?)(?=[^\d]+e-mail)

第一组匹配您想要的号码。从regex101.com:

 类似资料:
  • 我试图使用正则表达式来检查字符串中的第一个和最后一个字符是否是a-z之间的字母字符。 我知道这与第一个字符匹配: 但是我如何检查最后一个字符呢? 这: 不起作用。我怀疑这两个条款之间应该有什么区别,但我不知道是什么!

  • 我试图创建一个regex来捕获if cause的最后一个条目。例如,我有如下内容: 我只想在我尝试过类似的方法,但似乎不起作用

  • 问题内容: 我想匹配字符串中最后一次出现的简单模式,例如 但是,如果字符串 很 长,则会生成大量匹配项。有没有更直接的方法来匹配第二次出现的“ AAAA”,还是应该使用此替代方法? 问题答案: 您可以使用表示行末字符: 另外,请注意,这是变量的坏名称,因为它隐藏了内置类型。要访问列表的最后一个元素,您可以使用index:

  • 问题内容: 我是新来的正则表达式,并且想知道如何用短语来表示最后一个之后的所有东西。 我正在提取Google GData使用的ID。 我的示例字符串是 ID在哪里: 哦,我在用PHP。 问题答案: 这至少匹配以下项之一(非斜杠),然后是字符串的结尾: 笔记: 没有理由,因为它不需要任何组-结果进入组0(匹配项本身)。 使用(而不是),以便如果最后一个字符是斜杠,则它不匹配(而不是匹配空字符串)。

  • 我想用正则表达式解析一个字符串,字符串的例子是 罗得:他说:你不能通过 我想将作为一个组捕获,并且。然而,当我使用我的模式时,它返回 和 他说:你不应该使用正则表达式传递吗?

  • 问题内容: 我试图创建下面的正则表达式:返回之间的字符串和(或或)从下列字符串RNA: ,让所有的比赛会被发现,包括重叠的。 我尝试了几种正则表达式,最后得到了类似的结果: 您能告诉我我的正则表达式模式中的错误吗? 问题答案: 用一个正则表达式执行此操作实际上是非常困难的,因为大多数用法 都不 希望重叠匹配。但是,您可以通过一些简单的迭代来做到这一点: 虽然,这有一些问题。您希望得到的回报是什么?