Post
#1
|
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków |
hej,
mam lekki problem z regexp'ami, do rzeczy. mam takie stringi (możliwości): Kod jeden+"+test"+dwa jeden+"test+"+dwa jeden+"te+st"+dwa i teraz chce "porozbijać" te ciągi względem znaku +, wynik: Kod jeden; "+test"; dwa jeden; "test+"; dwa jeden; "te+st"; dwa oczywiście te rozbicia maja być tablicą otrzymana przez preg_split. stworzyłem takie wyrażenie: Kod #((?<!")\+)|(\+(?!(.*)"))#si niestety dopasowuje mi tylko do pierwszego ciągu: Kod jeden; "+test"; dwa pozostałe dwa nie parsują się poprawnie, jakiejś sugestie? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Szybciej będzie chyba napisać banalny wręcz parser, który po prostu przeleci znak po znaku i rozdzieli względem znaku "+". Do tego proste sprawdzanie Czy znajdujemy się pomiędzy cudzysłowem?, ignorujące znak "+".
O dziwo w PHP najprawdopodobniej będzie to najwolniejsze rozwiązanie. (IMG:style_emoticons/default/wink.gif) |
|
|
|
piotrooo89 PCRE - parsowanie string'a 1.03.2012, 19:52:49
Niktoś A spróbuj to :
Cytat^([\w\+]+)([\w... 1.03.2012, 20:21:13
piotrooo89 @Niktoś Twoj wyrażenie nie dopasowuje się do żadne... 1.03.2012, 20:25:03
Niktoś A może to?
^([\w]+\+)?|([\w\... 1.03.2012, 20:42:00
piotrooo89 [PHP] pobierz, plaintext $str = 'jeden+"test+... 1.03.2012, 20:48:09
cycofiasz Może użyj po prostu fgetcsv i jako separator podaj... 1.03.2012, 21:09:04
piotrooo89 @cycofiasz Twój pomysł byłby super, ale mam pewnie... 1.03.2012, 21:32:13
Niktoś Ciężka sprawa bo praktycznie nie ma separatora, ni... 1.03.2012, 21:41:09
Bags_Bunny Jeśli nie upierasz się na preg_split, to pobaw się... 2.03.2012, 01:26:37
piotrooo89 dzięki za podpowiedz jednak napisze to w ten sposó... 2.03.2012, 08:55:39
piotrooo89 Cytat(Crozin @ 2.03.2012, 10:40:04 ) ... 2.03.2012, 10:55:43 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 20:03 |