re.search (python) с положительной индексацией - PullRequest
0 голосов
/ 29 мая 2018

У меня есть это:

find = "user=admin user=root user=lol"

Я хочу извлечь пользователя LOL с помощью re.search, я попытался с помощью re.search

import re

print re.search(r'user=(.*)', find).group(1)

, но это дает мне:

admin user=root user=lol

Я попытался использовать отрицательную индексацию:

print re.search(r'user=(.*)',find).group(1)[-1]

, но мне дали 1 букву:

>>> print re.search(r'user=(.*)', find).group(1)[-1]
l
>>>

, и я попробовал это:

f = re.search(r'user=(.*)', find)
print f.group(1)[-1] + f.group(1)[-2] + f.group(1)[-3]

это дает мне:

>>> print f.group(1)[-1] + f.group(1)[-2] + f.group(1)[-3]
lol
>>>

это работает, но я не хочу этого, я не хочу повторять это каждый раз, я хочу напрямую

спасибо за ответ!

1 Ответ

0 голосов
/ 29 мая 2018

Используйте границу слова \b и группу без захвата (?:):

re.search(r'\b(?:user=)(.+?)\b', find).group(1)
#admin

И чтобы поймать их всех, используйте findall:

re.findall(r'\b(?:user=)(.+?)\b', find)
#['admin', 'root', 'lol']

Чтобы получитьlol просто используйте последний элемент:

re.findall(r'\b(?:user=)(.+?)\b', find)[-1]
#lol
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...