parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

офигеть... круто (похоже работает безупречно)

@chusov 23.08 16:45 / 23.08 16:48

Спасибо!

Все это оставляет во фрустрации и укрепляет во мнении, что у регулярок не такой уж понятный конечный автомат, а напротив много "скрытой магии" которая кроется за их особенностями и выдает далеко не самые очевидные результаты.

Мне вот до сих пор непонятно.
Почему код из rsplit (Misha v3) где я лишь заменил .+ на .*
вида:
$text[---
>text1
->text2 >-< still text2
-->text3
text3 continued >>>
till here
>
->

]

$delimiter[\n-*>]
^text.match[(.*?)(?:$delimeter|^$)][g]]
Выдает
| pos | .. | 1                     |
+-----+----+-----------------------+
|  0  |    | ---                   |
+-----+----+-----------------------+
|  1  |    | text1                 |
+-----+----+-----------------------+
|  2  |    | text2 >-< still text2 |
+-----+----+-----------------------+
|  3  |    | text3                 |
|     |    | text3 continued >>>   |
|     |    | till here             |
+-----+----+-----------------------+
|  4  |    | <empty>               |
+-----+----+-----------------------+
|  5  |    | 0A0A                  |
+-----+----+-----------------------+
|  6  |    | <empty>               |
+-----+----+-----------------------+
Т.е. все правильно вплоть до 5ой строки (где запись не пустая технически, а из двух переносов), но в конце появляется паразитная 6-ая пустая... откуда... понять не дано.

P.S.: И мне это не дает покоя, т.к. я не знаю что происходит и можно ли опираться на такое (слепо отрезая последнюю строку - или поведение может измениться)