c# - C# 获取特殊字符前的空白位置
问题描述
我正在尝试从字符串中提取 FPS 计数。该字符串和 FPS 计数可以具有不同的结构和长度。
两个例子是:
" Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x480 [SAR 1:1 DAR 1:1], 868 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn (default)"
" Stream #0:0: Video: msmpeg4v3 (MP43 / 0x3334504D), yuv420p, 320x240, 744 kb/s, SAR 1:1 DAR 4:3, 29.97 fps, 29.97 tbr, 29.97 tbn"
获取 FPS 计数位置的唯一常量是字符串中数字前面的“fps”和“,”部分。
我可以通过以下方式获取“ fps”的位置:processOutput.IndexOf(" fps")
。
但是因为 FPS 计数可以有不同的长度,所以我不能使用这个:
processOutput.Substring(fpslocation - 5, 5);
有没有办法在数字之前获得“,”部分的位置?然后我可以把它作为开始索引,将“fps”部分的位置作为结束索引。还是可以更轻松地过滤掉这个值?
解决方案
您可以为此使用常规表达式:
var match = Regex.Match(input, @"[\d\.]+(?= fps)")
将查找一系列数字和小数点 ( [\d\.]+
),后跟“fps”;后者不包括在比赛中。
match.Value
然后将包含该数字。
推荐阅读
- excel - 嵌套 IF 公式失败
- azure - 是否可以将 devcontainer 部署为私有 ACI?
- python - keras seq2seq 模型的注意力层
- django - Django imagefield 不显示在模板上
- ruby-on-rails - 在不同的类别中显示相同的任务
- c++ - 具有默认值的 const 引用参数
- react-native - React Native:如何在覆盖视图中响应事件,然后将事件传递到下一层视图
- visual-studio-code - Visual Studio Code - 空白窗口无边框
- jestjs - 为什么我使用玩笑得到未知选项“extensionsToTreatAsEsm”
- python-sphinx - 尝试创建 DOCX 时出现 Sphinx/PlantUML 错误