2010-11-15 117 views
1

我正面臨Python中正則表達式的問題。 問題是,「必須檢查一個列表,並且必須找出包含字符串的空間。」 的代碼是:用於檢查的正則表達式

def testFunction(self, func): 
     a = re.findall(r'\w+[\ ]*\(.*?\)', func) 
     j = len(a) 
     print j 
     if j<=1: 
      return True 

     else: 
      s = re.findall(r"function *()", func) # cheking 
      t = len(s) # calculating the lenth 
      if t<=0: 
       return True 
      else: 
       return False 

它返回所有的時間真的是否有間隙或也不是。 例如:它同時檢測到「test()」&「test()」 在一個單詞中,我正在尋找一個正則表達式,它將搜索字符串內的間隙。它只會檢測到「test()」而不是「試驗(+)」 我試着用正則表達式= R '\ w + \] ?)' 正則表達式= R '^ \ S *' 但不幸的是不起作用。 (arg1)& test(arg1)之間的正則表達式可以完成這項工作。 謝謝。

+0

如果 「空間」,而不是 「空白」,爲什麼不這樣做' l = [「ab」,「c」,「de」]; [x for a l如果a.find(「」)!= -1]'? – khachik 2010-11-15 08:22:55

回答

2

如果所有你關心的是,是否有任何空間,爲什麼不這樣做

return " " in func 
2

這個怎麼樣r'.*\s+.*'

+0

這對Unicode不起作用,是嗎? – tchrist 2010-11-15 11:19:26

2

[\] *匹配零成或多個空間。嘗試[\] +,而不是

+0

'[\]'應該是什麼?難道你不能再混淆嗎? ☹ – tchrist 2010-11-15 11:20:52

1
re.findall(r"function\ *\(\)", func) 
0

HI, 我已經

def testFunction(self, func): 
     #this function looks for a "function",looks for "function" both with and without parameter & with parameter 
     a = re.findall(r'\s', func) 
     j = len(a) 
     if j<=1: 
      return True 
     else: 
       return False 

感謝很多:)

+0

這對Unicode不起作用,是嗎? – tchrist 2010-11-15 11:19:46

+0

它在unicode上工作:) – mushfiq 2010-11-15 11:29:41