Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Preg_replace, Uknown modifier
infoo1
post 21.12.2008, 18:00:53
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 12.11.2008

Ostrzeżenie: (0%)
-----


Mam kod:
  1. <?php
  2. $this->cnt = preg_replace('(.*?)ť Grupy(.*?)cos/s*/cos2(.*?)cos3: /$*/wygenerowano w (.*?)ms obecny czas: (.*?)','${3}',$this->cnt);
  3. ?>

Wyświetla:
Cytat
Warning: preg_replace() [function.preg-replace]: Unknown modifier '�'

Co jest źle (oprócz wszystkiego winksmiley.jpg)?

edit:
tam, gdzie jest " t' " powinno być "»".
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
webdice
post 21.12.2008, 18:09:43
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Pierwszy i ostatni znak musi być taki sam.

  1. <?php
  2. $this->cnt = preg_replace('#(.*?)ť Grupy(.*?)cos/s*/cos2(.*?)cos3: /$*/wygenerowano w (.*?)ms obecny czas: (.*?)#','${3}',$this->cnt);
  3. ?>
Go to the top of the page
+Quote Post
infoo1
post 21.12.2008, 18:20:37
Post #3





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 12.11.2008

Ostrzeżenie: (0%)
-----


Zamieniłem na:
  1. <?php
  2. $this->cnt = preg_replace('#(.*?)ť grupy(.*?)cos(s*)cos2(.*?)cso3: ($*)wygenerowano w (.*?)ms obecny czas: (.*?)#','${3}',$this->cnt);
  3. ?>

Pokazuje:
Cytat
Warning: preg_replace() [function.preg-replace]: Compilation failed: nothing to repeat at offset 60
Go to the top of the page
+Quote Post
erix
post 21.12.2008, 18:36:56
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Kod
($*)

WTF?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
infoo1
post 21.12.2008, 19:02:38
Post #5





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 12.11.2008

Ostrzeżenie: (0%)
-----


http://www.antylameriada.net/wphppreg/
Cytat
() Podwyrażenie, grupowanie wzorców
* Zero, jedno lub więcej wystąpień poprzedzającego wzorca. Równoważne z {0,}
$ Koniec linii

Czyli tam może być 0-nieskończoność nowych linii.

Edit:
I jeszcze jedno pytanie regexów:
mam takie coś:
Cytat
Linia 1
Linia 2
Linia 3
Linia 4
Linia 5
Linia 1
Linia 2
Linia 3
Linia 4
Linia 5
Linia 1
Linia 2
Linia 3
Linia 4
Linia 5
....
oczywiście, treść będzie różna w poszczególnych blokach (5 linii). Co dać jako 1st argument dla preg_split(), aby wszystkie bloki (każdy ma 5 linii) dało do arraya?
Go to the top of the page
+Quote Post
erix
post 21.12.2008, 19:17:35
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
* Zero, jedno lub więcej wystąpień poprzedzającego wzorca. Równoważne z {0,}

Ale nie podałeś wzorca, który ma się powtarzać. winksmiley.jpg Masz sam modyfikator, ale klasy znaków/wyrażenia przed gwiazdką nie podałeś. Stąd wywalany przez parser błąd.

Cytat
Compilation failed: nothing to repeat at offset 60

Czytaj ze zrozumieniem: kompilacja zakończona niepowodzeniem - nie ma niczego do powtórzenia (chodzi o gwiazdkę).


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
pinochet
post 21.12.2008, 19:28:13
Post #7





Grupa: Zarejestrowani
Postów: 120
Pomógł: 12
Dołączył: 9.10.2008
Skąd: Tricity.Rumia()

Ostrzeżenie: (0%)
-----


dodam jeszcze ze koniec wiersza w wyrażeniach regularnych to nie znak końca wiersza. A same regexy nie obsługują wielobajtowych zestawów znaków czymkolwiek miałobybyć to: "ť"
Go to the top of the page
+Quote Post
infoo1
post 21.12.2008, 19:41:47
Post #8





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 12.11.2008

Ostrzeżenie: (0%)
-----


Cytat
Czytaj ze zrozumieniem: kompilacja zakończona niepowodzeniem - nie ma niczego do powtórzenia (chodzi o gwiazdkę).
To wiedziałem, tylko nie widziałem, że ($*) jest źle

Cytat
dodam jeszcze ze koniec wiersza w wyrażeniach regularnych to nie znak końca wiersza.
:/
Cytat
A same regexy nie obsługują wielobajtowych zestawów znaków czymkolwiek miałobybyć to: "ť"
Czym zastąpić?




To jest treść:
Cytat
Punkt odniesienia
zmienne rzeczy
Punkt odniesienia 2
to trzeba pobrać
zmienne rzeczy

Jak pobrać to coś na czerwono, korzystając z 2 punktów odniesienia, które są stałe?
Go to the top of the page
+Quote Post
erix
post 21.12.2008, 21:34:14
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
A same regexy nie obsługują wielobajtowych zestawów znaków czymkolwiek miałobybyć to: "ť"

Nigdy nie używałem tego typu wyrażeń, ale jest taki modyfikator u - unicode dla wyrażeń.

Cytat
Jak pobrać to coś na czerwono, korzystając z 2 punktów odniesienia, które są stałe?

Użyć tych dwóch punktów odniesienia, stałe zabezpieczyć sleszami, podpowiedź: preg_quote" title="Zobacz w manualu PHP" target="_manual.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 18:49