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

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

唐麒
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(匹配项本身)。 使用(而不是),以便如果最后一个字符是斜杠,则它不匹配(而不是匹配空字符串)。

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

  • 我有一些像这样的弦 我需要创建一个正则表达式,它将在没有空格的情况下获取内的所有内容。 使用下一个模式