gpt4 book ai didi

regex - 为连续的完整日志文件中的每个部分匹配 REGEX

转载 作者:行者123 更新时间:2023-12-02 23:33:10 27 4
gpt4 key购买 nike

我有一个来自视频转换文件的完整日志,它看起来像这样:

--------------------------------------------------------------------------------
D:\destination\vid1.mp4
--------------------------------------------------------------------------------
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000020179e89280] st: 1 edit list: 1 Missing key frame while searching for timestamp: 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000020179e89280] st: 1 edit list 1 Cannot find an index entry before timestamp: 0.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\source\vid1.mp4':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: isomavc1mp42
creation_time : 2020-02-18T20:21:00.000000Z
Duration: 00:49:31.71, start: 0.000000, bitrate: 5135 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 5001 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
creation_time : 2020-02-18T20:21:00.000000Z
handler_name : ETI ISO Video Media Handler
encoder : Elemental H.264
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
Metadata:
creation_time : 2020-02-18T20:21:00.000000Z
handler_name : ETI ISO Audio Media Handler
avcuvid: --sub-copy/--vpp-subburn is set, but no subtitle stream found.
Max B frames are 0 frames.
NVEncC (x64) 4.69 (r1408) by rigaya, Mar 25 2020 13:57:52 (VC 1916/Win/avx2)
OS Version Windows 10 x64 (18363)
CPU Intel Core i7-7700HQ @ 2.80GHz [TB: 3.59GHz] (4C/8T)
GPU #0: GeForce GTX 1080 with Max-Q Design (2560 cores, 1468 MHz)[PCIe3x16][442.19]
NVENC / CUDA NVENC API 9.1, CUDA 10.2, schedule mode: auto
Input Buffers CUDA, 17 frames
Input Info avcuvid: H.264/AVC, 1280x720, 30000/1001 fps
Vpp Filters cspconv(nv12 -> p010)
Output Info H.265/HEVC main10 @ Level auto
1280x720p 1:1 29.970fps (30000/1001fps)
avwriter: hevc, aac => mp4
Encoder Preset default
Rate Control CQP I:23 P:23 B:23
Lookahead off
GOP length 300 frames
B frames 0 frames [ref mode: disabled]
Ref frames 3 frames
AQ off
CU max / min auto / auto
Others mv:auto
Output #0, mp4, to 'D:\destination\vid1.mp4':
Metadata:
encoding_tool : NVEncC (x64) 4.69
encoder : Lavf58.35.101
Stream #0:0(und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 240k tbn (default)
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
Metadata:
creation_time : 2020-02-18T20:21:00.000000Z
handler_name : ETI ISO Audio Media Handler
[mp4 @ 0000020115d9b780] Starting second pass: moving the moov atom to the beginning of the file

encoded 89062 frames, 699.78 fps, 1682.57 kbps, 596.06 MB
encode time 0:02:07, CPU: 15.4%, GPU: 12.6%, VE: 96.3%, VD: 54.7%, GPUClock: 1705MHz, VEClock: 1529MHz
frame type IDR 297
frame type I 297, avgQP 23.00, total size 10.85 MB
frame type P 88765, avgQP 23.00, total size 585.21 MB
--------------------------------------------------------------------------------
D:\destination\vid2.mp4
--------------------------------------------------------------------------------
[wmv3 @ 000001fcd4217a80] Extra data: 8 bits left, value: 0
Input #0, asf, from 'C:\source\vid2.mp4':
Metadata:
WMFSDKNeeded : 0.0.0.0000
DeviceConformanceTemplate: M1
WM/WMADRCPeakReference: 32767
WM/WMADRCPeakTarget: 32767
WM/WMADRCAverageReference: 6067
WM/WMADRCAverageTarget: 6067
WMFSDKVersion : 11.0.6000.6346
IsVBR : 0
Duration: 00:29:48.19, start: 0.000000, bitrate: 2628 kb/s
Stream #0:0(eng): Video: wmv3 (Main) (WMV3 / 0x33564D57), yuv420p, 720x480, 2500 kb/s, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc
Stream #0:1(eng): Audio: wmapro (b[1][0][0] / 0x0162), 48000 Hz, stereo, fltp, 128 kb/s
avcuvid: --sub-copy/--vpp-subburn is set, but no subtitle stream found.
avcuvid: codec wmv3(yuv420p) unable to decode by cuvid.
failed to initialize file reader(s).
Failed to open input file.
--------------------------------------------------------------------------------
D:\destination\vid3.mp4
--------------------------------------------------------------------------------
[wmv3 @ 000001fcd4217a80] Extra data: 8 bits left, value: 0
Input #0, asf, from 'C:\source\vid3.mp4':
Metadata:
WMFSDKNeeded : 0.0.0.0000
DeviceConformanceTemplate: M1
WM/WMADRCPeakReference: 32767
WM/WMADRCPeakTarget: 32767
WM/WMADRCAverageReference: 6067
WM/WMADRCAverageTarget: 6067
WMFSDKVersion : 11.0.6000.6346
IsVBR : 0
Duration: 00:29:48.19, start: 0.000000, bitrate: 2628 kb/s
Stream #0:0(eng): Video: wmv3 (Main) (WMV3 / 0x33564D57), yuv420p, 720x480, 2500 kb/s, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc
Stream #0:1(eng): Audio: wmapro (b[1][0][0] / 0x0162), 48000 Hz, stereo, fltp, 128 kb/s
avcuvid: --sub-copy/--vpp-subburn is set, but no subtitle stream found.
avcuvid: codec wmv3(yuv420p) unable to decode by cuvid.
failed to initialize file reader(s).
Failed to open input file.

形成那个日志,每个视频转换日志被分成几个部分,由重复的破折号分隔。我正在尝试获取无法转换的源完整文件名,在本例中为 C:\source\vid2.mp4C:\source\vid3.mp4 .然而,使用下面的这个正则表达式模式,我得到 one matched result (vid3.mp4) and one mismatched (vid1.mp4) ,它匹配第 6 行 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\source\vid1.mp4':到日志的末尾。
(?sm)Input #(?<number>\d+).*?from '(?<filename>.*?)'.*?[A-Za-z]ailed to

知道如何解决这个问题吗?提前致谢。

最佳答案

您可以开始匹配仅由连字符组成的行,然后匹配与输入组匹配的行 number
然后继续匹配所有不以连字符开头的行,然后匹配failed to

(?m)^-+(?:\r?\n(?!-|Input #\d).*)*\r?\nInput #(?<number>\d+).*?from '(?<filename>[^'\r\n]+)':(?>\r?\n(?!-).*)*\r?\nfailed to

在零件中
  • (?m)内联多行修饰符
  • ^字符串开头
  • -+(?:\r?\n匹配仅包含连字符后跟换行符的行
  • (?!-|Input #\d).*)*匹配以下所有不以连字符或 Input
  • 开头的行
  • \r?\nInput #(?<number>\d+)匹配换行符,Input #并捕获号码
  • .*?from 匹配尽可能少的字符到 from 和空格
  • '(?<filename>[^'\r\n]+)':捕获单引号之间的文件名并匹配 :
  • (?>\r?\n(?!-).*)*使用原子组匹配以下所有不以连字符开头的行
  • \r?\nfailed to匹配后跟 failed to 的换行符

  • Regex demo

    关于regex - 为连续的完整日志文件中的每个部分匹配 REGEX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61863383/

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