我有一个输入格式如下:我们在字符串的开头有任意数量的空格,然后我们有一个数据子字符串可以是任何东西,它以非空格字符开头和结尾。在数据之后,我们再次获得任意数量的空格(至少一个),数字和空格再次...
这个规范真的不太准确,我想知道如何匹配它。显然很容易匹配开头和结尾的空格和最后的数字。最终的正则表达式看起来像这样:R("\s*(X)\s+([0-9]+)\s*)"
其中(X)
匹配的东西非常匹配。但是,我不确定这个(X)
应该是什么样子。如何解决这个问题?
还有一件事 - 如果正则表达式匹配整行,那么数据和最后的数字是我想要抓取的,所以只是找到一个数字不是解决方案。
澄清:在最终的正则表达式中,我想将子字符串和最终数字作为两个正则表达式组来获取。
答案 0 :(得分:2)
您可以使用
^\s*(\S.*?)\s+([0-9]+)\s*$
含义:
^
\s*
\S
.*?
\s+
[0-9]+
\s*
$
将修剪后的数据和数字保持为匹配结果