Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyrażenia regularne
code46
post 24.11.2008, 16:31:54
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 21.04.2005

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


Czy mógłby mi ktoś pomóc napisać funkcję zamieniająca w pliku wystąpienia więcej niż jednej spacji na tylko jedną i więcej niż jeden enter tylko na 1 enter.

Przykładowy tekst:
Cytat
to jest przykładowy


tekst

a to

koniec
tekstu

Powinien po wykonaniu funkcji wyglądać tak:
Cytat
to jest przykładowy
tekst
a to
koniec
tekstu
Go to the top of the page
+Quote Post
wookieb
post 24.11.2008, 16:36:15
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Kod
$tekst=preg_replace(array('/(\\r?\\n){2,}/', '/ {2,}/'), array("\n", ' '), $tekst);


Ten post edytował wookieb 24.11.2008, 16:36:38


--------------------
Go to the top of the page
+Quote Post
code46
post 24.11.2008, 16:50:29
Post #3





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 21.04.2005

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


Możesz mi to jeszcze wytłumaczyć co każdy zapis znaczy?
Go to the top of the page
+Quote Post
wookieb
post 24.11.2008, 16:54:19
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Poczytaj o wyrażenia regularnych
/(\\r?\\n){2,}/ - jeżelo występuje ciąg \r\n bądź samo \n więcej niż bądź 2 razy (zakończenia linii są różne)
/ {2,}/ - jeżeli spacja występuje więcej niż bądź 2 razy.

/ / nie bierz pod uwage bo to tylko rozpoeczenie i zakonczenie wyrażenia regularnego.


--------------------
Go to the top of the page
+Quote Post
code46
post 24.11.2008, 19:07:43
Post #5





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 21.04.2005

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


Jak zapisać zamianę więcej niż jednego tabulatora do dowolny inny znak?
Go to the top of the page
+Quote Post
Jarod
post 24.11.2008, 19:10:34
Post #6





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Cytat(code46 @ 24.11.2008, 19:07:43 ) *
Jak zapisać zamianę więcej niż jednego tabulatora do dowolny inny znak?


Analogicznie
  1. <?php
  2. preg_replace(array('/(r?\n){2,}/', '/ {2,}/', '/[[:blank:]]{2,}/'), array("<enter>", '<spacja>', '<tab>'), $tekst)
  3. ?>


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
code46
post 24.11.2008, 21:37:36
Post #7





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 21.04.2005

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


A jak rozbudować to wyrażenie aby po napotkaniu linijki:
  1. <?php
  2. // jakiś kod
  3. ?>

przerobił tą linijkę na
  1. <?php
  2. /*// jakiś kod*/
  3. ?>

?
Go to the top of the page
+Quote Post
wookieb
post 24.11.2008, 22:00:01
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A może serio poczytasz o wyrażeniach regularnych a nie o każdą rzecz prosisz.


--------------------
Go to the top of the page
+Quote Post
code46
post 25.11.2008, 15:18:09
Post #9





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 21.04.2005

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


Cytat(wookieb @ 24.11.2008, 22:00:01 ) *
A może serio poczytasz o wyrażeniach regularnych a nie o każdą rzecz prosisz.

Nie możesz pomóc? Skoro piszę tzn że nie mogę sobie z tym poradzić - prawda?
Go to the top of the page
+Quote Post
pyro
post 25.11.2008, 15:22:36
Post #10





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(code46 @ 25.11.2008, 15:18:09 ) *
Nie możesz pomóc? Skoro piszę tzn że nie mogę sobie z tym poradzić - prawda?


albo dlatego ze ci sie nie chce. to naprawde nie jest skomplikowane wyrażenie. Tyraj ;>


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
code46
post 25.11.2008, 16:23:07
Post #11





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 21.04.2005

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


Cytat(pyro @ 25.11.2008, 15:22:36 ) *
albo dlatego ze ci sie nie chce. to naprawde nie jest skomplikowane wyrażenie. Tyraj ;>

Próbowałem i naprawdę nie mogę sobie z tym poradzić.

  1. <?php
  2. $wzorzec = "#//#";
  3. ?>


odnajduje znaki // i mogę je zamienić na /* ale nie wiem jak na końcu takiej linii dopisać */
Go to the top of the page
+Quote Post
wookieb
post 25.11.2008, 17:06:40
Post #12





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




angrysmiley.gif
Kod
$text='//mlask mlask';

$text=preg_replace('/(\/\/.*)/','/*$1*/', $text);


--------------------
Go to the top of the page
+Quote Post
code46
post 25.11.2008, 21:43:31
Post #13





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 21.04.2005

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


Cytat(wookieb @ 25.11.2008, 17:06:40 ) *
angrysmiley.gif
Kod
$text='//mlask mlask';

$text=preg_replace('/(\/\/.*)/','/*$1*/', $text);

Mogę Cię jeszcze prosić o wytłumaczenie tego?
Go to the top of the page
+Quote Post
wookieb
post 25.11.2008, 23:04:29
Post #14





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Prosić możesz. A czy dostaniesz odpowiedź to nie wiadomo
http://php.net/preg_replace
http://www.google.pl/search?hl=pl&lr=&...rne&spell=1
http://osteele.com/tools/rework/

Metoda prób i błędów i się nauczysz.


--------------------
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: 27.04.2024 - 17:11