Thread View: pl.comp.lang.ruby
6 messages
6 total messages
Started by Szymon Bęczkowski
Thu, 06 Jul 2006 15:40
Jak wyciągnąć fragment stringa?
Author: Szymon Bęczkowski
Date: Thu, 06 Jul 2006 15:40
Date: Thu, 06 Jul 2006 15:40
8 lines
1001 bytes
1001 bytes
Mam w stringu kod html. [p]Jakiś paragraf[b]glup[/b][/p][li]...[/li][p]Drugi paragraf[/p] 1i chciałbym z niego wydobyć pierwszy element (w tym przypadku paragraf). Problem jest taki, ze w tym pierwszym paragrafie mogą być zagnieżdżone inne elementy. Jak w miare prosto to zrobić? -- Szymon Bęczkowski
Re: Jak wyciągnąć fragment stringa?
Author: Marcin Mielżyński
Date: Thu, 06 Jul 2006 19:36
Date: Thu, 06 Jul 2006 19:36
13 lines
1331 bytes
1331 bytes
Szymon Bęczkowski wrote: > Mam w stringu kod html. [p]Jakiś > paragraf[b]glup[/b][/p][li]...[/li][p]Drugi paragraf[/p] 1i chciałbym z > niego wydobyć pierwszy element (w tym przypadku paragraf). Problem jest > taki, ze w tym pierwszym paragrafie mogą być zagnieżdżone inne elementy. > Jak w miare prosto to zrobić? jeśli paragrafy nie będą się zagnieżdżały to po prostu: "[p]Jakiś paragraf[b]glup[/b][/p][li]"[/\[p\](.*?)\[\/p\]/,1] lopex
Re: Jak wyciągnąć fragment stringa?
Author: Aleksander Janeczko
Date: Fri, 07 Jul 2006 07:53
Date: Fri, 07 Jul 2006 07:53
25 lines
1788 bytes
1788 bytes
Witam! > jeśli paragrafy nie będą się zagnieżdżały to po prostu: > > "[p]Jakiś paragraf[b]glup[/b][/p][li]"[/\[p\](.*?)\[\/p\]/,1] Piąty wątek na całej grupie i opisuje dokładnie mój przypadek. :) Też staram się napisać konwerter BBCode -> XHTML, ale z wymaganą poprawnością składniową XML. Najlepiej chyba jest rozbić cały ciąg na tablicę węzłów-dzieci, tak aby: 'a[b]b[/b]c'.something => ['a', '[b]b[/b]', 'c'] 'a[i]b[b]c[/i]d[/b]e.something => ['a[i]b[b]c[/i]d[/b]e'] I w zależności od zawartości każdego elementu tablicy przepuszczać go do zwracanego ciągu lub zamieniać znacznik BBCode na XHTML i (jeżeli zawiera kolejne elementy) wywoływać na nim ponownie tę samą metodę rozbijania na dzieci... Ale jak wykonać krok pierwszy? Tzn. jak powinno wyglądać something? :) - Vinyanov
Re: Jak wyciągnąć fragment stringa?
Author: Michal Kwiatkowski
Date: Fri, 07 Jul 2006 09:24
Date: Fri, 07 Jul 2006 09:24
39 lines
2386 bytes
2386 bytes
Aleksander Janeczko wrote: >> jeśli paragrafy nie będą się zagnieżdżały to po prostu: >> >> "[p]Jakiś paragraf[b]glup[/b][/p][li]"[/\[p\](.*?)\[\/p\]/,1] > > Piąty wątek na całej grupie i opisuje dokładnie mój przypadek. :) > Też staram się napisać konwerter BBCode -> XHTML, ale z wymaganą > poprawnością składniową XML. > > Najlepiej chyba jest rozbić cały ciąg na tablicę węzłów-dzieci, > tak aby: > > 'a[b]b[/b]c'.something => ['a', '[b]b[/b]', 'c'] > 'a[i]b[b]c[/i]d[/b]e.something => ['a[i]b[b]c[/i]d[/b]e'] Tego przykładu nie rozumiem. Ale ogólnie, skoro akceptujemy źle zagnieżdżone znaczniki (tak jak w Twoim drugim przykładzie), to nie ma co rozbijać, lepiej chyba zrobić zwykłe tłumaczenie poszczególnych elementów zawartych w nawiasach kwadratowych, bez rozkładania ich struktury. > I w zależności od zawartości każdego elementu tablicy > przepuszczać go do zwracanego ciągu lub zamieniać znacznik > BBCode na XHTML i (jeżeli zawiera kolejne elementy) wywoływać > na nim ponownie tę samą metodę rozbijania na dzieci... > > Ale jak wykonać krok pierwszy? > Tzn. jak powinno wyglądać something? :) Przy opracowywaniu tego można oprzeć się na już istniejącym rozwiązaniu. Na przykład tutaj: http://bbcode.strefaphp.net/opis.php dostępne są gotowe wyrażenia regularne, wystarczy je pożyczyć. Pozdrawiam, mk -- . o . >> http://joker.linuxstuff.pl << . . o It's easier to get forgiveness for being wrong o o o than forgiveness for being right.
Re: Jak wyciągnąć fragment stringa?
Author: Marcin Mielżyński
Date: Fri, 07 Jul 2006 09:34
Date: Fri, 07 Jul 2006 09:34
6 lines
1071 bytes
1071 bytes
gem install calibre http://gemjack.com/gems/calibre-1.2.0/classes/BBCode.html lopex
Re: Jak wyciągnąć fragment stringa?
Author: Szymon Bęczkowski
Date: Fri, 07 Jul 2006 11:23
Date: Fri, 07 Jul 2006 11:23
10 lines
1082 bytes
1082 bytes
On Thu, 06 Jul 2006 21:36:04 +0200, Marcin Mielżyński <lopx@gazeta.pl> wrote: > jeśli paragrafy nie będą się zagnieżdżały to po prostu: > "[p]Jakiś paragraf[b]glup[/b][/p][li]"[/\[p\](.*?)\[\/p\]/,1] Działa, dzięki. Przejrzałem dokumentację do MatchData i już wiem co i jak. -- Szymon Bęczkowski
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads