我正在使用一个正则表达式来检查一个字符串,它是否是一个函数。 我检查正则表达式如下:正则表达式进一步检查
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