【发布时间】:2019-04-18 01:19:54
【问题描述】:
我目前正在尝试获取介于 2 个子字符串之间的字符串。在这种情况下,我需要操作的字符串是一段代码。不确定它是正则表达式还是搜索功能,但我一直没有得到任何回复,我不应该这样做。我需要在第 53 行获得偏移量,但我需要使用 Gusset To Backplate Left Gus 1 作为开始标记,而我认为 ENDFOR 可能是结束标记。只是不太确定这样的语法如何在 python 中工作。我已经尝试了一些我在网上看到的例子,但到目前为止都没有运气。任何帮助,将不胜感激。我也想通过编译来做到这一点,因为可以多次访问偏移量。
s = '''!GUSSET TO BACKPLATE LEFT GUS 1 ;
45: E_NO(8) ;
46: FOR R[191:COUNTER B]=1 TO R[199:CHANNELS] ;
47: ;
48: CALL CHAN_BP_TO_GR ;
49: ;
50: PR[GP1:2,1:OFFSET]=PR[GP1:2,1:OFFSET]-R[197:X OFFSET MM] ;
51: --eg:THESE OFFSETS ONLY APPLY TO THIS BLOCK AND INCREASE THE AMOUNT GIVEN
: EACH LOOP ;
52: !X OFFSET ;
53: PR[GP1:2,1:OFFSET]=PR[GP1:2,1:OFFSET]+21 ;
54: !Y OFFSET ;
55: PR[GP1:2,2:OFFSET]=PR[GP1:2,2:OFFSET]+0 ;
56: !Z OFFSET ;
57: PR[GP1:2,3:OFFSET]=PR[GP1:2,3:OFFSET]+0 ;
58: ENDFOR ;'''
string1 = re.compile('!GUSSET TO BACKPLATE LEFT GUS 1 ;')
string2 = re.compile('PR[GP1:2,1:OFFSET]=PR[GP1:2,1:OFFSET]+[0-9]* ;')
string3 = re.compile('ENDFOR ;')
result = re.search(r'!GUSSET TO BACKPLATE LEFT GUS 1 ;, (PR[GP1:2,1:OFFSET]=PR[GP1:2,1:OFFSET]+[0-9]* ;),ENDFOR ;', s)
'.(PR[GP1:2,1:OFFSET]=PR[GP1:2,1:OFFSET]+[0-9]* ;'
print(result)
【问题讨论】:
标签: regex python-3.x string text