Python:如何匹配第一个匹配模式

时间:2017-01-26 19:03:33

标签: python-2.7

Python编程。 Python 2.4.3

我有一个字符串:

x = "set_ccci_path 2 -setup -from [get_clocks abc_clk] -to [all_registers -clock xyz_clk -data_pins] -start"

当我使用

y = re.match(r'(.*)(get_clocks)\s+(.*)(\])(.*)$', x, re.M|re.I)

我得到了y.group(3)

abc_clk] -to [all_registers -clock xyz_clk -data_pins

我想要的是abc_clk。我该怎么做?

2 个答案:

答案 0 :(得分:0)

也许你可以尝试这样的事情:

y = re.match(r'(.*)\[((get_clocks)(\s+)(?P<c>\w+))\](.*)$', x, re.M|re.I) 
y.group('c')

答案 1 :(得分:0)

更改第三组以排除结束括号,您将获得所需的结果。

import re
x = "set_ccci_path 2 -setup -from [get_clocks abc_clk] -to [all_registers -clock xyz_clk -data_pins] -start"
y = re.match(r'(.*)(get_clocks)\s+([^\]]*)(])(.*)$', x, re.M|re.I)
print y.group(3)