Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]preg_match i NOT dla częsci zapytania
grzemach
post
Post #1





Grupa: Zarejestrowani
Postów: 121
Pomógł: 4
Dołączył: 9.06.2007
Skąd: Kielce

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


Witam,
Chciałem napisać funkcję która zmieni mi treść: #tag na <span>#tag</span>

Przy czym, jeśli użytkownik wpisze sam, to zrobi to za niego JS (w 95% przypadków). Pozostałe 5% przypadków chciałem obsłużyć za pomocą PHP.

  1. preg_match_all('/\<span class="tag-mention-form"\>#(.*?)\<\/span\>/i',$content,$matches);

Wyłapie mi wszystkie wystąpienia <span>#tag</span>

A jak sprawić aby wyłapało mi #tag gdy nie ma (wystarczy) przed nim <span>?
Mam taką konstrukcję (później zostanie zastąpione przez preg_replace - tak łatwiej się testuje):
  1. preg_match_all('/(?!\<span class="tag-mention-form"\>)#(.*?) /i',$content,$matches);


Dla testowego stringu:
<p>fdfs dfd sjki&nbsp; #asda sdfasdfs @ <span class="tag-mention-form">#grzemach</span>&nbsp; #asda</p>

Zwraca mi:
#asda
#grzemach


Prawidłowo zwraca, tylko część (.*?) łapie też wszystko do spacji.... i przed tym zapytaniem... a jest tylko jedno #asda, gdyż tak są flagi ustawione.... wszystko jest już jasne. Wątek można zakną i usunąć.


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 19.08.2025 - 18:12