一个文件在逻辑定义的字符串块中有n行。我正在解析每一行,并根据一些匹配条件捕获所需的数据。你知道吗
我通读了每一行,找到了代码块:
#python
for lines in file.readlines():
if re.match(r'block.+',lines)!= None:
block_name = re.match(r'block.+', lines).group(0)
# string matching code to be added here
输入文件:
line1 select KT_TT=$TMTL/$SYSNAME.P1
line2 . $dhe/ISFUNC sprfl tm/tm1032 int 231
line3 select IT_TT=$TMTL/$SYSNAME.P2
line4 . $DHE/ISFUNC ptoic ca/ca256 tli 551
.....
.....
line89 CALLING IK02=$TMTL/$SYSNAME.P2
line90 CALLING KK01=$TMTL/$SYSNAME.P1
匹配条件和每个步骤的预期输出:
最终输出应该是
FUNC SYS CALL
tm1032 int 231 $SYSNAME.P1 KK01
ca256 tli 551 $SYSNAME.P2 IK02
如果您只需要最后一个斜杠旁边的文本,那么根本不需要使用regex。你知道吗
只需在每一行上使用
.split("/")
,就可以得到斜杠旁边的最后一部分将导致
然后只需使用-1索引访问列表的最后一个元素即可获得值
PS:找到对应的行后,使用split函数
这里理想的方法是(a)遍历列表索引而不是行本身(即
for i in range(len(file.readlines()): ... file.readlines()[i]
),或者(b)维护最后一行的副本(例如,将last_line = line
放在for循环的端)。然后,引用此表达式的最后一行:假设,从你的例子中,你的意思是“仅仅是数据之后立即(即直到等号):
你可以移动圆括号来改变你想要捕捉的内容。
re.findall()
将输出一个匹配列表,只包括括号内匹配的位。你知道吗相关问题 更多 >
编程相关推荐