【发布时间】:2016-12-06 16:00:23
【问题描述】:
我有以下数据:
SOMEDATA .test 01/45/12 2.50 THIS IS DATA
我想从中提取数字 2.50。我已经设法使用以下正则表达式做到这一点:
(?<=\d{2}\/\d{2}\/\d{2} )\d+.\d+
但是,这不适用于这样的输入:
SOMEDATA .test 01/45/12 2500 THIS IS DATA
在这种情况下,我想提取数字 2500。
我似乎无法为此找到一个正则表达式规则。有没有办法在两个空格之间提取一些东西?那么在日期之后提取文本/数字直到下一个空格?我所知道的是,日期将始终具有相同的格式,并且在文本之后总会有一个空格,然后在我要提取的数字之后有一个空格。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
您的行中是否有文字
THIS IS DATA? -
@SebastianProske 完美运行。非常感谢。你能解释一下你在那里用 \d+(.\d+) 做什么吗?
-
@user2606751:请参阅我对当前答案的评论。要点是您的正则表达式不“正确”,因为点未转义。您需要按照 Dmitry 显示的方式使用它,否则您将无法匹配 1 位数的值,例如
SOMEDATA .test 01/45/12 2 THIS IS DATA。 -
或者你确定你发布了你正在使用的确切模式?
标签: regex extract whitespace