2016-07-08 43 views
0

这个问题会很相似,但寻找的东西与我前几天询问的完全不同。在字符串中寻找一个未知的字符串

我有一个已知的字符串,而是代码的一部分,它因人而异,我目前通过使用发现:

for num, line in enumerate(code, 1): 
    if re.match("function (.*) {", line): 

这让我通过什么我需要一个良好的部分,如我需要知道它开始的行号。我的问题从这里开始。我需要的仅仅是我使用(。*)正则表达式的部分。

回答

2

您是指()之间的文字?

使用捕获组:

m = re.match("function (.*) {", line): 
if m: 
    print m.group(1) 
+0

是的,我的意思是说文本。 – Jgrindle

0

被返回的匹配对象对象包含组的所有内容。如果'函数'不总是在一行的开始处,并且'。+'用于匹配具有至少一个字符的函数,我会使用re.search。

line_to_fn = {} 

for num, line in enumerate(code, 1): 
    match = re.search("function (.+) {", line) 
    if match: 
     matches = match.groups() 
     assert len(matches) == 1, repr(matches) 
     line_to_fn[num] = matches[0] 

# line_to_fn: {1: 'something', 5: 'something_else'}here