![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 17.01.2009 Ostrzeżenie: (10%) ![]() ![]() |
Nie wiem kompletnie jak napisać wzorzec do tej funkcji. Przeczytałem kilka razy Wiki: http://en.wikipedia.org/wiki/Regular_expression bawiłem się tym narzędziem http://rubular.com/
Ale nic sensownego mi nie wychodzi. mam taki string Cytat pierwszy string { drugi string|trzeci string {czwarty string|piąty string}}|szósty string {{ósmy string|dziewiąty string} dziesiąty string}{jedenasty string|dwunasty string} trzynasty string chciałbym aby wyglądał tak
To oczywiście nie jest wszystko co bym chciał zrobić z tym stringme ale jeżeli ogarnę to myślę, że dalej sobie porodzę. Tylko poprosiłbym o prosty opis dokładnie który fragment za co odpowiada. A odnośnie wzorca to chciałbym aby tak jak w przypadku array[0] separował string, który nie zawiera się w znakach {}, separował stringi w znakach {} ale żeby ilość { była równa ilości } oraz jeżeli pojawia się | żeby tworzył kolejna tablice po tym znaku. Mam nadzieję, że w miarę przejrzyściej opisałem. Pytanie jest też takie czy w ogóle da się to zrobić za jednym razem. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 17.01.2009 Ostrzeżenie: (10%) ![]() ![]() |
Dobrze napisałem coś inaczej troszkę niż proponowałeś. Tzn to tak jak by pierwszy poziom obrabiania całości ale mam pewien problem z parametryzacją i przekazywaniem odpowiednich wartości.
Spłodziłem takie coś. te zmienne na początku nie są istotne dodawałem je w momencie kiedy kombinowałem, żeby mi błędów o braku zdefiniowanej wartości zmiennej nie wywalało.
I powiedzmy działa to "prawie dobrze" bo: efekt jest taki: Kod Array ( [0] => pierwszy string [1] => drugi string|trzeci string {czwarty string|piąty string} [2] => |szósty string {{ósmy string| dziewiąty string} dziesiąty string} {jedenasty string| dwunasty string} trzynasty string [3] => jedenasty string| dwunasty string} trzynasty string ) Problem polega na tym, że już w 3 rekordzie skrypt się gubi czyli $pStart i $off źle przekazują parametry. kombinowałem już na różne sposoby ale wydaje mi się że błąd leży w konstrukcji całości. Później będę to przebudowywał, żeby rozkładał cały ciąg do końca a nie tylko pierwszy poziom ale na początku muszę opanować pierwszy poziom. Co do użycia Case to będę miał konkretne fragmenty to pewnie użyje tej pętli. Ten post edytował Crenos 4.04.2013, 16:52:37 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 23:44 |