我正在使用一個正則表達式來檢查一個字符串,它是否是一個函數。 我檢查正則表達式如下:正則表達式進一步檢查
regex=r' \w+[\ ]*\(.*?\)*'
它succefully檢查是否字符串包含一個函數或沒有。 但是它抓住了正常的字符串,其中包含第一個桶的值,比如「test(test of test)」。
所以我不得不進一步檢查,如果有函數名和一個空間,不會被捕獲爲match.So括號我沒有其他檢查如下:
regex2=r'\s'
它成功地工作,並能區分「test()」和「test()」。 但現在我必須保持另一個條件,如果括號後面沒有空格(例如test()abcd),它不會將其作爲函數捕獲它。正則表達式應該只會在匹配時視爲匹配「test()abcd」。 但我試過使用不同的正則表達式,不幸的是這些都不起作用。 她提到檢查字符串的一件事是在它找到匹配時插入列表中,而在第二步中它只檢查字符串的一部分。例如: 字符串:這是一個python函數test()abcd 首先它將檢查函數的字符串,當查找與函數test() 匹配時,則僅發送「test()」,以確定「test」和「()」之間是否存在間隙。 在這最後一步,我必須找到「測試()」和「abcd」之間是否有任何差距。如果有差距,它將不會顯示匹配作爲函數,否則作爲字符串的正常部分。 我應該如何爲這種情況編寫正則表達式?
正則表達式將在以下情況下顯示:
1.test() abc
2.test(as) abc
3.test()
不會當作一個函數,如果:
1.test (a)abc
2.test()abc
你想匹配python函數嗎?如果是這樣,你是否試圖匹配定義或呼叫? – aaronasterling 2010-11-21 05:03:45
不,我想匹配主要是C風格的功能,和正則表達式匹配所有類型的函數。這兩種情況下的功能和調用。 – mushfiq 2010-11-21 05:05:47