2010-11-15 2 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()» not » тест()» Я попытался с регулярным выражением = г '\ ш + [\] (.?)' регулярного выражения = г '^ \ с *' , но, к сожалению, не работает. Работа может быть выполнена с помощью регулярного выражения, которое будет отличаться между тестом (arg1) & test (arg1). Спасибо.

+0

Если "пространство", а не "белое пространство", то почему бы не ' l = ["ab", "c", "de"]; [x для a в l, если a.find ("")! = -1] '? – khachik

ответ

2

, если все, что вы заботитесь о том, есть ли любые пространства, то почему бы не просто сделать что-то вроде

return " " in func 
2

как об этом r'.*\s+.*'

+0

Это не работает на Unicode, не так ли? – tchrist

2

[\] * соответствует нулю или более вхождений пространства , Попробуйте [\] + вместо

+0

Какая черта '[\]' должна быть? Не могли бы вы запутать что-нибудь еще? ☹ – tchrist

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

+0

Его работа над юникодом :) – mushfiq

Смежные вопросы