![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 22.01.2004 Skąd: LDZ Ostrzeżenie: (0%) ![]() ![]() |
Mam problem a w zasadzie dwa :
Pierwszy problem to taki ze chcialbym przeszukac wyrazanie pod katem ilosci nawiasow poczatkowych '(' i kocowych ')' i chcialbym wypisac stosowny komunikat ze ilosci sa rowne probowalem preg_match_all ale niezbyt udanie... czy mam iść dalej w tym kierunku ? Zaczalem pisac ale chyba cos nie tak kombinowalem Natomiast drugi problem to przy uzyciu preg_match chcialem znalezc w wyrazeniu pusty nawias (do warunku ktory mowi ze nie powinno go byc) wiec wykombinowalem sobie taki kod :
i nie chce mi ten kodzik dzialac ![]() ![]() -------------------- Hardware : <span style="font-weight: bold;">OrangePi+ 2E | 2GB RAM | HDD: 1TB </span>
Software : <span style="font-weight: bold;">Debian GNU/Linux 8 (jessie) 3.4.113-sun8i </span> |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ad 1.
Lepiej uzyc jakiejs lzejszej broni ![]()
Ad 2.
Moze to dziwne, ale w tak prostym wyrazeniu popelniles przynajmniej 3 bledy: -nie wyeskejpowales meta charow ( i ) -nie dodales ogranicznikow wyrazenia regularnego (tzn w twoim przypadku okazaly sie nimi te nawiasy, ale to przypadek) -uzyles zlej funkcji Cytat preg_match() returns the number of times pattern matches. That will be either 0 times (no match) or 1 time because preg_match() will stop searching after the first match. preg_match_all() on the contrary will continue until it reaches the end of subject. preg_match() returns FALSE if an error occurred. Jednak w takim wypadku radzilbym isc za sugestia manuala: Cytat Podpowiedź: Do not use preg_match() if you only want to check if one string is contained in another string. Use strpos() or strstr() instead as they will be faster.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 22.01.2004 Skąd: LDZ Ostrzeżenie: (0%) ![]() ![]() |
SUPER DZIEKI ZA POMOC ! :-)
Juz sobie wszystko doszlifowalem ale teraz zostala najgorsza czesc zadania :/ Otoz w jednym miejscu chcialbym napisac procedure ale ona by byla w oddzielnym miejscu tylko to pozniej teraz jest taka kwestia : nie bardzo wiem jak sobie poradzic z tym mam wyrazenie typu
jak teraz przeszukiwac po (w zasadzie nie wiem czy literze czy grupach) miejscach na podstawie okreslonych regul: czyli np. na miejscu a moze byc : 'spacja'a lub (a lub ~a lub Zb (Z-jakas liczba; b-druga grupa [lub litera] ) mam nadzieje ze zrozumiecie o co mi chodzi... konkrteniej opisywalem to tutaj http://forum.php.pl/index.php?showtopic=38655&hl= ale teraz potrzebuje tylko wykonac pkt3. z tamtego reszte dzieki waszej pomocy juz zrobilem ![]() Ten post edytował AdamT 19.01.2006, 00:30:38 -------------------- Hardware : <span style="font-weight: bold;">OrangePi+ 2E | 2GB RAM | HDD: 1TB </span>
Software : <span style="font-weight: bold;">Debian GNU/Linux 8 (jessie) 3.4.113-sun8i </span> |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(AdamT @ 2006-01-18 23:29:34) Otoz w jednym miejscu chcialbym napisac procedure ale ona by byla w oddzielnym miejscu tylko to pozniej teraz jest taka kwestia : Ja wiem, ze jezyk polski do latwych nie nalezy, ale chyba mozna postarac sie jasniej pisac? Szczerze mowiac, przeczytalem 2 razy twoj post i nie rozumiem nic. Wyraz sie jasniej, podaj jakies przyklady co chcesz zrobic, czego nie wiesz. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 22.01.2004 Skąd: LDZ Ostrzeżenie: (0%) ![]() ![]() |
Hmmm... tak żeczywiście nie postawiłem jednego przecinka
![]() 1) Chcialem napisac cos takiego : jezeli warunek w przeciwnym wypadku wykonaj procedure np. nazywajaca sie "ogolna"
2) A ta procedura ogolna ma byc taka : po wpisaniu wyrazenia powinien go przeanalizowac mozna powiedziec literka po literce na podstawie takich regół : # Reguly S->'spacja'S S->(S S->~(S1 S->'Z'S2 S->-S5 S1->'spacja'S1 S1->'Z'S2 S1->(S itd... pełna gramatyka w poscie do ktorego link podalem powyzej po analizie powinno napsiac OK lub nie zgodne z regulami czy jakos tak ![]() ## wszystko ## Ponizej opis ppkt.2 jezeli juz wiesz o co mi chodzi, to go nie czytaj bo sie pogubisz ![]() I w sumie gdyby reguły były w stylu S->'spacja' S->S S->~ . . . S1->( czyli kazdej literce odpowiada inna wartosc (ale jedna - pojedyncza) to by chyba nie bylo problemu bo wystarczylo by zrobic jakas petle i rozbic zdanie na pojedncze skladowe a potem sprawdzic czy na odpowiednim miejscu znajduje sie odpowiedni znak jednak w tym przypadku jest inaczej na pierwszym miejscu moze stac 1. spacja a po nim litera 2. nawias a po nim litera 3. moze stac ~ i ( i S1 .... itd hmmmm tak zaczalem sie zastanawiac a moze by sie udalo wypisac to tak zeby jedenj literce odpowiadala dokladnie jedna literka ? hmmm ## koniec tłumaczenia - tak ja rozumiem ![]() W każdym razie dzięki za pomoc -------------------- Hardware : <span style="font-weight: bold;">OrangePi+ 2E | 2GB RAM | HDD: 1TB </span>
Software : <span style="font-weight: bold;">Debian GNU/Linux 8 (jessie) 3.4.113-sun8i </span> |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 15:11 |