正则表达式-匹配所有的数字在最后

Regex - matching everything with number at the end

本文关键字:数字 最后 -匹 正则表达式      更新时间:2023-10-16

我有一个格式如下的输入:我们在字符串的开头有任意数量的空白,然后我们有一个数据子字符串,可以是任何东西,它以非空白字符开始和结束。在数据之后,我们再次有任意数量的空格(至少一个),一个数字和空格…

这个规格确实不准确,我不知道如何匹配它。显然,匹配开始和结束空白以及末尾的数字是相当容易的。最终的正则表达式是这样的:R("s*(X)s+([0-9]+)s*)",其中(X)是匹配所有东西的东西。然而,我不确定这个(X)应该看起来像什么。如何解决这个问题?

还有一件事-如果regex匹配整行,那么数据和最后的数字是我想要抓住的东西,所以只是找到一个数字不是一个解决方案。

澄清:在最后的正则表达式中,我想将子字符串和最终数字作为两个正则表达式组。

可以使用

^s*(S.*?)s+([0-9]+)s*$

的意义:

  • 字符串^起始
  • 任意数量的空白字符s*
  • a非空白S
  • 什么都行,但不能贪心.*?
  • 一个或多个空白字符s+
  • a号[0-9]+
  • 任意数量的空白字符s*
  • 字符串$
  • 结束

保持裁剪数据和数字的匹配结果