0
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

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

举个例子好吗?

这个我已经有了

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

但我担心“25”可能会在文本后面的某个地方出现误报。

4

2 回答 2

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

正则表达式可视化

在 Debuggex 上实时编辑

也许这会起作用?

  • ,表示逗号

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

  • (\d+\.?\d*)在捕获组中捕获十进制值

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

  • fps$检查 fps 是否在行尾。

于 2013-09-12T17:39:03.793 回答
1
(?<=, )[0-9]+(\.[0-9]+)?(?= fps)

应该可以正常工作,并且只会匹配您的号码。

比赛结果

正则表达式 101 演示

于 2013-09-12T17:43:27.260 回答