2015-12-03 9 views
1

Может ли кто-нибудь показать мне, как я могу использовать переменный url внутри Python для поиска регулярных выражений? Url - это переменная, переданная функции, которая содержит код ниже. Я попробовал следующее, но продолжаю получать ошибку. Надеюсь, кто-нибудь поможет мне исправить эту ошибку. Спасибо заранее. образец ул и URL значение:Как использовать переменную внутри Python поиск регулярных выражений?

str='.......href="http://somewebsite:8080/hls/1.m3u8?session=34534525".....' 
url='http://somewebsite:8080/hls/1.m3u8?session=' 

питон код:

foundValue= re.search('+url+(.*)"', str) 
print 'foundValue:' 
print foundValue.group(1); 

ошибка на бревнах XBMC:

ERROR: EXCEPTION Thrown (PythonToCppException) : 
-->Python callback/script returned the following error<-- 
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS! 
Error Type: <class 'sre_constants.error'> 
Error Contents: nothing to repeat 
Traceback (most recent call last): 
File "F:\......\addon.py", line 281, in <module> 
play_video(url) 
File "F:\.......\addon.py", line 160, in play_video 
foundValue = re.search('+url+(.*)"', str) 
File "F:\.....\XBMC\system\python\Lib\re.py", line 142, in search 
return _compile(pattern, flags).search(string) 
File "F:\....\XBMC\system\python\Lib\re.py", line 242, in _compile 
raise error, v # invalid expression 
error: nothing to repeat 
-->End of Python script error report<-- 

ответ

2
foundValue= re.search(re.escape(url)+r'(.*?)"', str1) 

Угадайте вы хотел this.Also не использовать str как это встроен.

+0

благодарит за ответ. теперь я получаю эту ошибку: Тип ошибки: <тип 'exceptions.AttributeError'> Содержимое ошибки: объект «NoneType» не имеет атрибута «group» Traceback (последний последний звонок): print foundValue.group (1); AttributeError: объект «NoneType» не имеет атрибута «group» -> Отчет об ошибке сценария конца Python <- – user1788736

+0

Спасибо, сработало! – user1788736

0

Другой вариант заключается в использовании формат, чтобы сделать строку:

found_value = re.search(r'{0}(.*)"'.format(url), search_string) 

Обратите внимание, что стандарт для имен переменных в Python является words_separated_by_underscores (см PEP 008), и, как упоминалось @vks, избегать использования str в виде переменная, поскольку она сглаживает встроенный класс str.