gpt4 book ai didi

regex - 捕获两个空格之间的数字 (RegEx)

转载 作者:行者123 更新时间:2023-12-04 12:50:57 30 4
gpt4 key购买 nike

我有以下数据:

SOMEDATA .test 01/45/12 2.50 THIS IS DATA

我想从中提取数字 2.50。我已设法使用以下 RegEx 做到这一点:

(?<=\d{2}\/\d{2}\/\d{2} )\d+.\d+ 

但是这对这样的输入不起作用:

SOMEDATA .test 01/45/12 2500 THIS IS DATA

在这种情况下,我想提取数字 2500。

我似乎无法找出正则表达式规则。有没有办法在两个空间之间提取一些东西?那么提取日期之后的文本/数字直到下一个空格?我所知道的是,日期将始终具有相同的格式,并且在文本之后总是有一个空格,然后在我要提取的数字之后总是有一个空格。

有人可以帮我解决这个问题吗?

最佳答案

Capture number between two whitespaces

空格匹配\s,非空格匹配\S

所以,你可以使用的是:

\d{2}\/\d{2}\/\d{2} +(\S+)
^^^

参见 regex demo

1+ 个非空白符号被捕获到第 1 组。

如果 - 由于某种原因 - 您只需要获取整个匹配项的值,请使用您的 lookbehind 方法:

(?<=\d{2}\/\d{2}\/\d{2} )\S+

或者 - 如果您使用的是 PCRE - 您可以利用匹配重置运算符 \K:

\d{2}\/\d{2}\/\d{2} +\K\S+
^^

参见 another demo

注意:\K 和捕获组方法允许在日期后有 1 个或多个空格,因此更加灵活。

关于regex - 捕获两个空格之间的数字 (RegEx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38701101/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com