从python中混合字符串的文件行中获取特定数字

2024-09-29 17:15:35 发布

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

我有一个文件,在其他行中,有一些行的开头如下

*SOLID SECTION, ELSET=EB1, MATERIAL=Alu
*SOLID SECTION, ELSET=EB42, MATERIAL=Alu
....
....

它们的显著特征是以*SOLID开头 我想在EB之后得到同一行中的数字,所以第一次迭代应该得到1,第二次应该得到42

我用的是

for line in inputFile:
 if line.startswith('*SOLID'):
  trial=line 
  array = line.split(' ')
  target= array[2]
  ID=target[-2:]
  print ID

它会给我1和2作为输出。我当然可以将-2增加到-3,但是逗号仍然存在,当我有1或任何小于10的数字作为最后一个数字时,它也会包括B。对此有何建议?我还可以使用“,”作为分隔符,以解决数字与字母表之间的分隔问题


Tags: 文件idtargetlinesection数字特征array
1条回答
网友
1楼 · 发布于 2024-09-29 17:15:35

首先,使用split获取所需的列,然后使用regex获取数字

import re
line = '*SOLID SECTION, ELSET=EB1, MATERIAL=Alu'
id = line.split()[2].split('=')[-1] # this get EB1
id = re.search('\d+', id).group()   # this get 1

或者单独使用正则表达式

import re
line = '*SOLID SECTION, ELSET=EB1, MATERIAL=Alu'
id = re.search('(\S+\s+){2}\w+\=\w*(\d+)', line).group(2) # this get 1

相关问题 更多 >

    热门问题