@python_beginnersЭта группа больше не существует

Страница 52 из 1885
Aleshka
16.06.2016
16:31:58
а нет

втф

а всё

пробел забыл

Google
Alex
16.06.2016
16:32:25
пробел

Aleshka
16.06.2016
16:32:34
между точкой и именем

Alex
16.06.2016
16:32:54
вон, выше говорят лучше сплит

Petr
16.06.2016
16:33:54
есть url = "http://aaaa.org/bbb/ccc/ddd/eee.xls" нужно получить "eee.xls" делаю file_name = url.split('/')[-1:][0] это нормально или есть более простой путь?

Alex
16.06.2016
16:34:43
могу предложить регулярку?

Andrey
16.06.2016
16:36:21
[-1?[0] а это на кой?

просто url.split('/')[-1] не катит?

Petr
16.06.2016
16:37:11
ну без последнего прилетает список из одного элемента

а, туплю, да

да, так куда красивее и правильнее

спасибо

Zart
16.06.2016
16:43:04
а, после точки. s.partition(' ')[2].split(None, 1)[0]

Google
Alex
16.06.2016
17:27:00
сплитом лаконичнее

Марк
16.06.2016
17:27:48
Ну вы еще перл юзните, чтобы совсем коротко было

Alex
16.06.2016
17:30:10
давайте асм, чтобы быстро

Марк
16.06.2016
17:44:59
Я слайсы вообще не юзаю в таких задачах

Реальное уебанство

Aleshka
16.06.2016
18:20:38
Я что-то пропустил видимо в регулярках, есть шаблон и findall, например, он выдаст лист со всеми найденными строчками которые попадут под шаблон

почему \((\w*) который ищет слово после скобки

возвращает в лист только само слово, без скобки

это конечно хорошо, но я не улавливаю

в шаблон то скобка включена...

Марк
16.06.2016
18:26:00
Я с регекспами работаю так: r = re.search() if re: r.group()

Все, что нужно вытащить, пихаю в группировки

Aleshka
16.06.2016
18:27:19
это то ладно, почему он не возвращает слово со скобкой, она же в шаблоне

Марк
16.06.2016
18:28:05
Строку дай, по которой ищешь

Aleshka
16.06.2016
18:28:25
Swift, Mrs. Frederick Joel (Margaret Welles)

x=re.findall(r"\((\w*)", i)

дает Margaret

куда скобка девается

Google
Марк
16.06.2016
18:49:10
(Margaret

'(\(\w+) '

Aleshka
16.06.2016
18:52:46
а что в данном случае обозначает (\

а, понял, это группа получается скобка и слово

Марк
16.06.2016
18:59:06
Ога

В твоем варианте тоже всё ровно

Aleshka
16.06.2016
19:01:03
но мой вариант не возвращает мне скобку

Марк
16.06.2016
19:01:14
Все он возвращает

= "Swift, Mrs. Frederick Joel (Margaret Welles)" import re f = re.search('(\(\w*) ',a) if f: print f.group(1)

Aleshka
16.06.2016
19:03:18
x=re.findall(r"\((\w*)", i)

я получаю список имен

ни одной скобки

Марк
16.06.2016
19:05:28
f = re.findall('(\(\w*) ',a) if f: print f[0]

Всё ровно

Aleshka
16.06.2016
19:05:54
да нет, у тебя (\

у меня \(

\((\w*)

Марк
16.06.2016
19:07:01
(Margaret

Aleshka
16.06.2016
19:07:44
нухз прикол какой-то

Марк
16.06.2016
19:07:44
У меня всё верно

Google
Марк
16.06.2016
19:08:03
Ты сначала делаешь группировку, потом экранируешь скобку

Может показаться сперва, что ('\(\w) - это чет типо (() , но это не так

Aleshka
16.06.2016
19:11:04
а типа findall возвращает только группу?

если вне группы что-то есть, не вернет это?

но учтет при поиске

Марк
16.06.2016
19:11:40
Я этим дерьмом не пользуюсь.

Zart
16.06.2016
19:11:57
в шаблон то скобка включена...
потому что ты скобку не в группу сунул

Aleshka
16.06.2016
19:12:27
ну короче, к вопросу - вернется только то, что в группе ?

Admin
ERROR: S client not available

Zart
16.06.2016
19:12:34
Реальное уебанство
твоё мнение по этому вопросу очень ценно для нас 8))

возвращается полный матч и всё что попало в группы, если они есть в регулярке

Марк
16.06.2016
19:13:09
Привет

Aleshka
16.06.2016
19:13:29
Марк
16.06.2016
19:17:10
Потому что ты неправильно группируешь

Aleshka
16.06.2016
19:17:31
ну так говорят - что полный матч возвращается

а он не возвращается

Марк
16.06.2016
19:17:51
У тебя получается чет вроде ((вавава

Zart
16.06.2016
19:18:23
это разница между \((группа_без_скобки) и (\(группа_со_скобкой)

Марк
16.06.2016
19:19:37
Тебе просто надо уяснить, что группировка - это ()

Google
Aleshka
16.06.2016
19:19:52
ну так и в \((группа_без_скобки) скобка есть

перед группой

Zart
16.06.2016
19:19:58
именно

Марк
16.06.2016
19:20:01
А экранирование скобок должно быть внутри группировки

Zart
16.06.2016
19:20:12
а ты дергаешь из результата что именно?

Aleshka
16.06.2016
19:20:31
ну так мы снова подошли к вопросу, если я пишу регулярку \((группа_без_скобки)

почему экранированная скобка не возвращается

Zart
16.06.2016
19:20:52
потому что не должна

Aleshka
16.06.2016
19:21:05
потому что возвращается только группа?

Zart
16.06.2016
19:21:07
по крайней мере в группе

я тебя спросил как ты результат дергаешь

Марк
16.06.2016
19:21:28
Потому что что выражание приобритает вид типо ((

Aleshka
16.06.2016
19:21:53
x=re.findall(r"\((\w*)", i)[0]

[0] потому чо мне строка нужна а не лист из листов, я дальше append делаю просто

Марк
16.06.2016
19:23:20
Ну я в группировке слайс указал

Zart
16.06.2016
19:25:47
зачем делать файндолл чтобы сделать потом [0]

если это ре.сёрч

>>> re.search(r'\((.*)', 'fuck (you)').groups() ('you)',) >>> re.search(r'(\(.*)', 'fuck (you)').groups() ('(you)',)

Марк
16.06.2016
19:26:37
Я, кстати, разницы не секу

Zart
16.06.2016
19:26:39
вон твоя скобка - в группе и вне

Страница 52 из 1885

Эта группа больше не существует Эта группа больше не существует