werehuman 08.02.2011 12:44 lithium

Нашел багу в регекспах. re.split(r"[^\\],", "a,b,c,d\,e,f") выдает совсем не то, что ожидается.

1. Xenomorph 08.02.2011 12:47

Это бага не в регекспах, а в питоне. Ну вобщем-то первотег — второтег! :D

2. werehuman → Xenomorph /1 08.02.2011 12:47 lithium

я имел ввиду модуль регексп

3. Rondo 08.02.2011 12:50 mcabber

а зачем экранировать символы в квадратных скобках? разве нужно?

4. werehuman → Rondo /3 08.02.2011 12:50 lithium

да

5. xaos 08.02.2011 12:52

а что, собственно, не так?

6. werehuman → xaos /5 08.02.2011 12:53 lithium

ну скажи, какой ты результат по выполнению ожидаешь?

7. xaos → werehuman /6 08.02.2011 12:53

['', '', '', 'd\\,', 'f']
такой и получается

8. werehuman → xaos /7 08.02.2011 12:54 lithium

странно, я ожидал ['a', 'b', 'c', 'd\\,e', 'f']. Где я неправ?

9. xaos → werehuman /8 08.02.2011 12:55

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

10. arts → werehuman /6 08.02.2011 12:55

Данный регэксп вернёт _два_ символа, первый из который — любой кроме бэкслеша, второй — запятая. А ты чего ожидал?

11. werehuman → arts /10 08.02.2011 12:56 lithium

точно. "?" забыл

12. arts 08.02.2011 12:57

Кури доки по регэкспам на предмет ретроспективы.
Нечего на зеркало пенять... нутыпонел:-)

13. Rondo 08.02.2011 12:59 mcabber

rtfm приходит в это псто

14. werehuman 08.02.2011 13:00 lithium

Ок. А где прочитать маны, например, об этом?
In [39]: re.split(r"[^\\],", r"a,b\,c,d")
Out[39]: ['', 'b\\,', 'd']

In [40]: re.split(r"([^\\]),", r"a,b\,c,d")
Out[40]: ['', 'a', 'b\\,', 'c', 'd']

16. werehuman → arts /15 08.02.2011 13:07 lithium

ну с расширенными регекспами я осилил, да. И про два символа я понял. А вот скобки меня смущают

17. arts → werehuman /16 08.02.2011 13:07 nedobook

Чем?

18. werehuman → arts /17 08.02.2011 13:08 lithium

ну если я [^\\] завернул в скобки, то оно "a" нашло

19. arts → werehuman /18 08.02.2011 13:10 nedobook

Ты имеешь ввиду, что оно содержимое скобок сохранит?

20. werehuman → arts /19 08.02.2011 13:10 lithium

а, вот оно что.

21. werehuman 08.02.2011 13:11 lithium

все, вы заставили меня почувствовать себя говном %)

22. arts → werehuman /21 08.02.2011 13:13 nedobook

Поищи в интернетах книжку Фридла, она в свободном доступе должна быть. Много нового для себя откроешь:-)

24. werehuman → arts /23 08.02.2011 13:18 lithium

> 464 стр.
мама

25. werehuman → arts /23 08.02.2011 13:24 lithium

как всегда, в текстовом формате только на английском

26. utros 09.02.2011 15:18 jabber.el

В советской россии регэкспы находят ошибки в тебе!

27. werehuman → utros /26 09.02.2011 15:27 lithium

:(

Do you really want to delete ?