我的第一次前瞻(或后仰?)运动

时间:2013-09-12 17:35:04

标签: regex lookahead

8:9 DAR4:3], 23.98 fps
8:9 DAR4:3], 29.97 fps
8:9 DAR4:3], 25 fps

我有这3个可能的字符串,我正在寻找一个表达式,它将提取此行中第一个逗号和“fps”之间出现的数字。

23.98,29.97,25

如何最好地攻击这个?在“fps”之前看到落后于任何数字和点[\ d。]似乎是最合乎逻辑的方式,但我从未做过其中一种。

一个例子,拜托?

我已经有了这个,

\d{2}\.\d{2}|25

但我担心“25”可能会在文本的后面某处发现误报。

2 个答案:

答案 0 :(得分:2)

,\s*(\d+\.?\d*)\s*fps$

Regular expression visualization

Edit live on Debuggex

也许这会有用吗?

  • ,表示逗号

  • \s*表示零个或多个空格。

  • (\d+\.?\d*)捕获捕获组中的小数值

  • \s*表示零个或多个空格。

  • fps$检查fps是否在该行的末尾。

答案 1 :(得分:1)

(?<=, )[0-9]+(\.[0-9]+)?(?= fps)

应该可以正常使用匹配您的号码。

match result

Regex101 demo