python - 在 Python 中使用正则表达式搜索并返回值

标签 python regex

我正在尝试编写一个程序来扫描视频,查找音频和字幕可用的语言,然后使用这些结果进行输入。

目前,我正在使用以下命令生成输出:

with open('output.txt', 'wt') as output_f:
    p = subprocess.Popen(command, stdout=output_f, stderr=output_f)

这是我需要的扫描文本。

  + audio tracks:
    + 1, Japanese (aac) (2.0 ch) (iso639-2: jpn)
  + subtitle tracks:
    + 1, English (iso639-2: eng) (Text)(SSA)

所以我需要找出日语前面的数字是什么,但只有在它位于“音轨”之后

类似地,我需要找到英文前面的数字,但只有在“字幕轨道”后面的数字

我很确定我需要使用正则表达式来执行此操作,但我不知道从哪里开始。

最佳答案

这里你真的不需要正则表达式 - 无论如何,对我来说使用其中一个似乎太复杂了。

这是一些常规解析:

with open('output.txt', 'wt') as output_f:
    parseTracks = False
    lines = tuple(output_f)
    for line in lines:
        if 'audio tracks' in line:
            parseTracks = True
        if parseTracks:
            if 'Japanese' in line:
                theNumber = int(''.join([char for char in line if char in '1234567890']))

字幕也是如此。

关于python - 在 Python 中使用正则表达式搜索并返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16185042/

相关文章:

python - __future__ 模块在 Python 2.7 中如何工作?

python - 无法对 librosa Melspectrogram 使用多线程

Python-如何按顺序调用列表中的下一个玩家

python - 如何在python中获取子数组?

python - python中多个谓词调用ifilter的简洁方法

regex - 读取文件并修改它

regex - 替换 ini 文件中的 block 文本

regex - 偶数个 1 的位串的正则表达式

正则表达式匹配字符串,除非后跟 #

正则表达式仅在后面没有另一个字符时匹配一个字符,然后仅替换该初始字符