crypt of decay - opera10, the show goes on [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

opera10, the show goes on [Dec. 6th, 2008|12:25 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|, ]

регулярки хоть и шустрые, но completely broken.
/(^|\s+)\"([^\"]+?)\"(\s+|\$|\.|\,|\!|\?|\)|\;)/g

вот это нихуя теперь не работает. причём ломается на ([^\"]+?). просто не находит соответствия, хотя оно, очевидно, есть. потому у меня сломалась замена кавычек аглицких на лапки русские. причём жадный и нежадный вариант поломаны одинаково. то есть, скорее ranges убиты. или только negative ranges.

багрепорт филить не буду, стотыщмильёнов прежних моих багрепортов были проигнорены, не вижу, отчего бы стало по-другому в этот раз.

upd: да, поломаны именно ranges. при замене \"([^\"]+?)\" на \"(.+?)\" (что, очевидно, то же самое) всё заработало. операстам на заметку, так сказать.
Linkmeow!

Comments:
From:[info]666
Date:December 6th, 2008 - 12:35 pm
(Link)
а причем тут опера, откуда в ней перл?
[User Picture]
From:[info]ketmar
Date:December 6th, 2008 - 12:37 pm
(Link)
в стандарте ECMA-262 (или какой там, честно, лень смотреть, но это JavaScript) прописан объект RegExp, который обязан держать полные перловые регэкспы, только без подстановок-бэктрэйсов и условий. в опере10 они переписали движок регэкспов, и, по слухам, сильно ускорили (не могли купить вменяемый, что ли?). ускорить-то ускорили, но поломали. как минимум ranges — точно поломали.
[User Picture]
From:[info]do_
Date:December 7th, 2008 - 04:10 am
(Link)
...ага, это, конечно, ларри волл регекспы придумал, кто же ещё.
From:[info]666
Date:December 7th, 2008 - 04:36 am
(Link)
[User Picture]
From:[info]ketmar
Date:December 7th, 2008 - 01:00 pm
(Link)
если не ошибаюсь, то нынешний уёбищный синтаксис — именно он. а вообще, регэкспы говно. Ъ используют PEG.
[User Picture]
From:[info]do_
Date:December 7th, 2008 - 08:07 pm
(Link)
...новый синтаксис отличается от старого отсутствием слэша. Небольшое изменение, обллегчающее жизнь, не больше.