在python中匹配模式后grep一个字符串

时间:2016-06-09 04:19:50

标签: python

我想从文件中提取测试台名称。这是名称所在的行,我怎么能用Python做呢?

Status: aaa (image='some_image_name' on testbed='test_bed_name' archiving)

我正在考虑拆分索引的字符串,但是这一行在我的所有文件中可能都不一样。可能会有一些小的变化。

2 个答案:

答案 0 :(得分:2)

带着后视。

>>> re.search("(?<=testbed=')([^']+)'", "Status: aaa (image='some_image_name' on testbed='test_bed_name' archiving)").groups()
('test_bed_name',)

答案 1 :(得分:0)

如果格式总是这样,你可以简单地切到正确的位置:

>>> s.split('=')[-1].split(' ')[0][1:-1]
test_bed_name

或者,您可以使用正则表达式:

>>> re.findall(r"(?:.*?)testbed='(.*?)'(?:.*?)", s)
test_bed_name

以上是对正则表达式的一种简单方法,但你可以随时调整它以使其更精确。