2016-07-08 67 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