
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
могу предложить регулярку?

Petr
16.06.2016
16:36:16

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

Zart
16.06.2016
16:43:41

Марк
16.06.2016
17:26:40

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
возвращается полный матч и всё что попало в группы, если они есть в регулярке

Марк
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
вон твоя скобка - в группе и вне
Эта группа больше не существует