Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]wyrażenie regularne dokładny wzorzec
sazian
post 3.02.2008, 12:42:29
Post #1





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


mam taki kod
  1. <?php
  2. $text="000000[y]11111 xxx[/y]22222[y]3333 xxxx[/y]4444";
  3.  
  4. $text= preg_replace("|[y](.*)xxx(.*)[/y]|U",'[y]1<b>xxx</b>2[/y]',$text);
  5. ?>

i wszystkie wyrażenia "xxx" między znacznikami "y" mają zostać pogrubione
po wykonaniu tego kodu otrzymuje
000000[y]11111 xxx[/y]22222[y]3333 xxxx[/y]4444
jak dopasować wzorzec aby wyrażenie xxxx nie zostało wogóle pogrubione questionmark.gif

Ten post edytował sazian 3.02.2008, 12:55:37
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
-Wieviór-
post 3.02.2008, 12:44:36
Post #2





Goście







yyy... nie wstawiać go pomiędzy [y][/y]? biggrin.gif
Go to the top of the page
+Quote Post
Cysiaczek
post 3.02.2008, 12:45:55
Post #3





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
nowotny
post 3.02.2008, 12:47:55
Post #4





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Cytat(sazian @ 3.02.2008, 12:42:29 ) *
jak dopasować wzorzec aby wyrażenie xxxx nie zostało wogóle pogrubione questionmark.gif

Może coś takiego: (nie sprawdzane)
  1. <?php
  2. $text= preg_replace("|[y](.*)x{3}[^x](.*)[/y]|U",'[y]1<b>xxx</b>2[/y]',$text);
  3. ?>
Go to the top of the page
+Quote Post
sazian
post 3.02.2008, 13:03:05
Post #5





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


dobra może użyłem zbyt "ogólnego" zapisu
  1. <?php
  2. $text="000000[y]11111 add[/y]22222[y]3333 add2[/y]4444";
  3.  
  4. $text= preg_replace("|[y](.*)add(.*)[/y]|U",'[y]1<b>add</b>2[/y]',$text);
  5. $text= preg_replace("|[y](.*)add2(.*)[/y]|U",'[y]1<u>add2</u>2[/y]',$text);
  6. ?>

i w tym wypadku otrzymuje 000000[y]11111 add[/y]22222[y]3333 add2[/y]4444

a ja chce żeby add zostało pogrubione a aad2 podkreślone
Go to the top of the page
+Quote Post
nowotny
post 3.02.2008, 13:10:57
Post #6





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Tu wszystko zależy... czy ten string jest zawsze 'add' czy może się zmieniać...? czy jest zawsze trzy literowy czy może być dłuższy/krótszy...? czy zawsze po nim jest '[/y]' czy może być coś innego...? czy drugi string zawsze kończy się liczbą czy nie...?
Go to the top of the page
+Quote Post
sazian
post 3.02.2008, 13:17:25
Post #7





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


1)stringi są różne tak jak w przykładzie(add pogrubiony , add2 podkreślony , a np. close czerwony )
2)mają różne długości (o ile o tym samym myślimy)
3)przed nim i za nim może być dowolny ciąg znaków
4)nie zawsze kończy się cyfrą, to jest coś w rodzaju do słów kluczowych
Go to the top of the page
+Quote Post
nowotny
post 3.02.2008, 13:26:18
Post #8





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Cytat(sazian @ 3.02.2008, 13:17:25 ) *
1)stringi są różne tak jak w przykładzie(add pogrubiony , add2 podkreślony , a np. close czerwony )

Czyli znasz te stringi z góry...? Może warto użyć czegoś prostszego a nie wyr. reg...
Go to the top of the page
+Quote Post
sazian
post 3.02.2008, 14:37:07
Post #9





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


ja jestem otwarty na propozycje
tylko nie bardzo mam pomysł jak takie coś inaczej zrobić
Go to the top of the page
+Quote Post
nowotny
post 3.02.2008, 14:47:24
Post #10





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


No to rzuć tymi stringami... w formie:
"string poszukiwany" => "to na co chcesz zamienić"

Tak na ślepo nie będziemy się tu produkować... tongue.gif
Go to the top of the page
+Quote Post
sazian
post 3.02.2008, 15:28:36
Post #11





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


przykładowe stringi były podane
add => <b>add</b>
add2 => <u>add2</u>

ale ma je zamieniać tylko między znacznikami [y]
czyli tekst [y]add[/y] add ma wyglądać po "przerobieniu" tak add add

Ten post edytował sazian 3.02.2008, 15:30:14
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 - 02:30