正则表达式 - 匹配所有与数字结尾
问题描述:
我有一个输入格式是这样的:我们有任意数量的空格在字符串的开始,然后我们有一个数据子字符串可以是任何东西,它开始和以非空白字符结尾。数据后,我们再次有任意数量的空格(至少一个),一个数字和空格再次...正则表达式 - 匹配所有与数字结尾
这个规范是真的不准确,我想知道如何匹配它。在最后匹配开始和结束的空格和数字显然是相当容易的。最终的正则表达式如下所示:R("\s*(X)\s+([0-9]+)\s*)"
其中(X)
是匹配所有内容的匹配项。不过,我不确定这个(X)
应该是什么样子。如何解决这个问题呢?
还有一件事 - 最后的数据和数字是我想抓住的东西,如果正则表达式匹配整行,所以找到一个数字不是一个解决方案。
说明:在最终的正则表达式中,我想抓取子串和最终数字作为两个正则表达式组。
答
您可以使用
^\s*(\S.*?)\s+([0-9]+)\s*$
含义:
- 字符串的开始
^
- 任意数量的空格字符
\s*
- 非空白
\S
- 什么,但不贪婪
.*?
- 一个或多个空格字符
\s+
- 若干
[0-9]+
- 任何数目的空格字符
\s*
- 字符串
$
保持作为匹配结果的修整数据和数字
的端部的
这不符合一个数字吗?我希望数据和数字能够被分开的数据块“匹配”。 – qiubit
下面是一个数据的例子:*不能按预期工作:'Foo234bar 456',然后我想抓住“Foo234bar”和“456”,这个匹配“Foo234” – qiubit