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. werehumanXenomorph /1 08.02.2011 12:47 lithium

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

3. Rondo 08.02.2011 12:50 mcabber

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

4. werehumanRondo /3 08.02.2011 12:50 lithium

да

5. xaos 08.02.2011 12:52

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

6. werehumanxaos /5 08.02.2011 12:53 lithium

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

7. xaoswerehuman /6 08.02.2011 12:53

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

8. werehumanxaos /7 08.02.2011 12:54 lithium

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

9. xaoswerehuman /8 08.02.2011 12:55

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

10. artswerehuman /6 08.02.2011 12:55

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

11. werehumanarts /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. werehumanarts /15 08.02.2011 13:07 lithium

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

17. artswerehuman /16 08.02.2011 13:07 nedobook

Чем?

18. werehumanarts /17 08.02.2011 13:08 lithium

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

19. artswerehuman /18 08.02.2011 13:10 nedobook

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

20. werehumanarts /19 08.02.2011 13:10 lithium

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

21. werehuman 08.02.2011 13:11 lithium

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

22. artswerehuman /21 08.02.2011 13:13 nedobook

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

24. werehumanarts /23 08.02.2011 13:18 lithium

> 464 стр.
мама

25. werehumanarts /23 08.02.2011 13:24 lithium

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

26. utros 09.02.2011 15:18 jabber.el

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

27. werehumanutros /26 09.02.2011 15:27 lithium

:(

Do you really want to delete ?