使用正则表达式分离长ti的相关部分

2024-04-28 19:31:17 发布

您现在位置:Python中文网/ 问答频道 /正文

标题=MANTRA (IFD & RENDER): mh 104_IJ_5070_Fireworks_residualSmoke_v3 (/obj/FX_jet_contrails/_RENDER/smokeResidual_Beauty) (Frames: 1001-1151)

我想用正则表达式分离这个标题中的“mh 104_IJ_5070_fireholds_residualSmoke_v3”部分,但我正在努力找出一种干净的方法

有什么想法吗

请使用Python 2.7


Tags: obj标题v3renderfxbeautyjetfireworks
2条回答

假设标题的第一部分MANTRA (IFD & RENDER):没有更改,并且要提取的两个部分不包含空格字符,则以下操作应该有效:

import re
title = "MANTRA (IFD & RENDER): mh 104_IJ_5070_Fireworks_residualSmoke_v3 (/obj/FX_jet_contrails/_RENDER/smokeResidual_Beauty) (Frames: 1001-1151)"
substring = re.search(r": (\S+ \S+)", v).group(1)
print(substring)

收益率:

'mh 104_IJ_5070_Fireworks_residualSmoke_v3'

这可以有效地捕获第一个冒号+空格:之后的所有内容,并捕获前两部分非空格字符

这一切都取决于你可以改变什么,所以你需要什么锚定你的正则表达式

我个人会避免正则表达式,如果你能帮助它-他们只是创造了很多错误

尝试:

 " ".join(str.split()[6:8])

将字符串拆分为单词,然后抓住第6个和第7个单词并将它们放回一起

如果你真的想用regexp

import re
r = "TITLE = (?P<title>.*): (?P<data>.*) \((?P<path>.*)\) \(Frames: (?P<frame>.*)\)"
m = re.match(r, str)
m.groupdict()

{'path': '/obj/FX_jet_contrails/_RENDER/smokeResidual_Beauty', 'frame': '1001-1151', 'data': 'mh 104_IJ_5070_Fireworks_residualSmoke_v3', 'title': 'MANTRA (IFD & RENDER)'}

相关问题 更多 >