Найти - Пользователи
Полная версия: Регулярные выражения
Начало » Python для новичков » Регулярные выражения
1 2
megoloman
Здравствуйте! Помогите пожалуйста с составлением регулярного выражения. У меня есть список строк, у которых отличается только первая цифра, и мне необходимо составить РВ, при котором условию удовлетворяли бы лишь те строки, которые начинаются не с цифры 9. Пытался что-то типа этого сделать, но не работает:

import re
a = ["0subloc","1subloc","9subloc"]
if r'[0-8]subloc' in a:
    print "Yes"
else:
    print "No"
ZerG
А зачем тут регулярка?

a = ["0subloc","1subloc","9subloc"]
for i in a:
  if i[0] is not '9':
    print i
megoloman
Неправильно сформулировал вопрос, в списке могут быть строки, которые начинаются с числа, но заканчиваются не на “subloc”, например:

a = ["0subloc","1subloc","9subloc", "8bigarea", "7location"]

А проверять необходимо именно для subloc
ZerG
Правильно!
За ким хером вобще включать думалку…
a = ["0subloc","1subloc","9subloc", "8bigarea", "7location"]
for i in a:
  if i[0] is not '9' and i[-6:] == 'subloc':
    print i
Все ж напишут а вы питон программист потом.
megoloman
Да, точно)
Но мне без цикла это надо проверить
py.user.next
>>> import re
>>> 
>>> lst = ['0subloc', '1subloc', '9subloc', '8bigarea', '7location']
>>> 
>>> pat = re.compile(r'^[^9]subloc')
>>> list(filter(pat.search, lst))
['0subloc', '1subloc']
>>>
ZerG

Как вы собираетесь без цикла пройтись по списку?
что по вашему происходит в вашем коде if r'subloc' in a: ?

megoloman
Мне необходимо проверить наличие строки в списке, ведь это же можно сделать так:

if stroka in list:
    print True
plusplus
megoloman
Мне необходимо проверить наличие строки в списке, ведь это же можно сделать так:

a = ["0subloc","1subloc","9subloc", "8bigarea", "7location"]
if any(i[0] is not '9' and i[-6:] == 'subloc' for i in a):
    print True
megoloman
py.user.next
Да, спасибо, работает. А если необходимо проверять не в списке, а в словаре наличие ключа с теми же условиями?:

a = {'city': <City: Харьков>, '9subloc': [<Sublocality: Нет района>],'house_type': [], 'max_price': None, '5subloc': [<Sublocality: Героев труда>]}
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB