Python 使用正则表达式隔离长标题的相关部分
标题=Python 使用正则表达式隔离长标题的相关部分,python,regex,string,3d,render,Python,Regex,String,3d,Render,标题=咒语(IFD和渲染):mh 104_IJ_5070_焰火_剩余烟雾_v3(/obj/FX_jet_contails/\u渲染/烟雾剩余美丽)(帧:1001-1151) 我想用一个正则表达式来分离这个标题的部分“mh 104_IJ_5070_FireWorks_ResistualSmoke_v3”,但我正在努力找到一种干净的方法来实现它 有什么想法吗 请使用Python2.7这一切都取决于您可以更改什么,因此您需要在什么基础上锚定正则表达式 就我个人而言,如果你能帮忙的话,我会避免使用正则表
咒语(IFD和渲染):mh 104_IJ_5070_焰火_剩余烟雾_v3(/obj/FX_jet_contails/\u渲染/烟雾剩余美丽)(帧:1001-1151)
我想用一个正则表达式来分离这个标题的部分“mh 104_IJ_5070_FireWorks_ResistualSmoke_v3”,但我正在努力找到一种干净的方法来实现它
有什么想法吗
请使用Python2.7这一切都取决于您可以更改什么,因此您需要在什么基础上锚定正则表达式 就我个人而言,如果你能帮忙的话,我会避免使用正则表达式——它们只会产生很多bug 尝试: 将字符串拆分为单词,然后抓住第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)'}
重新导入
r=“TITLE=(?P.*):(?P.*)\(?P.*)\(框架:(?P.*)”
m=重新匹配(r,str)
m、 groupdict()
{'path':'/obj/FX_jet_contails/_RENDER/smoke resistant_Beauty','frame':'1001-1151','data':'mh 104_IJ_5070_firses_resistualsmoke_v3','title':'MANTRA(IFD&RENDER)}
这完全取决于您可以更改什么,因此您需要在什么基础上锚定正则表达式
就我个人而言,如果你能帮忙的话,我会避免使用正则表达式——它们只会产生很多bug
尝试:
将字符串拆分为单词,然后抓住第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)'}
重新导入
r=“TITLE=(?P.*):(?P.*)\(?P.*)\(框架:(?P.*)”
m=重新匹配(r,str)
m、 groupdict()
{'path':'/obj/FX_jet_contails/_RENDER/smoke resistant_Beauty','frame':'1001-1151','data':'mh 104_IJ_5070_firses_resistualsmoke_v3','title':'MANTRA(IFD&RENDER)}
假设标题咒语(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'
这将有效地捕获第一个冒号+空格
:
之后的所有内容,并捕获前两部分非空白字符。假设标题咒语(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'
这有效地抓住了第一个冒号+空格后的所有内容
:
,并捕获了前两段非空白字符。对我来说不起作用,因为这是一个可以分析大量不同标题的工具,它并不总是这样。但是我总是试图分离出由uu分隔的信息,所以正则表达式是必要的。添加了正则表达式-但这一切都取决于什么变化,什么保持不变,以及哪些位是你感兴趣的。对我来说不起作用,因为这是一个可以分析大量不同标题的工具,它并不总是这样。但是我总是试图分离出由uux分隔的信息,所以正则表达式是必要的。添加了正则表达式-但这一切都取决于什么变化,什么保持不变,以及哪些位是你感兴趣的。所以,我想说,给更多的标题示例。标题是否始终为2个字符
,后跟一个
分隔标识符?KATANA渲染:abr char_nasr_main_lookdev_v002(层:转盘头)(帧:1001-1200)(时间:约30分钟)(Tpl:v004)SHOTBOT KATANA渲染:abr MC0825_main_布局_v001(层:bty_grey_qc)(帧:1001-1185)(时间:约15分钟)(Tpl:v005)匹配渲染:abr MS0255_main_MATCHMATION_v001(层:输出)(帧:1001-1052),因此,我想给出更多标题示例。标题是否始终为2个字符
,后跟一个
分隔标识符?KATANA渲染:abr char_nasr_main_lookdev_v002(层:转盘头)(帧:1001-1200)(时间:约30分钟)(Tpl:v004)SHOTBOT KATANA渲染:abr MC0825_main_布局_v001(层:bty_grey_qc)(帧:1001-1185)(时间:约15分钟)(Tpl:v005)匹配渲染:abr MS0255_main_MATCHMATION_v001(层:输出)(帧:1001-1052)