Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem
Forum PHP.pl > Forum > PHP
zulus
Mam problem jak napisać wyrażenie regularne o mniej więcej takiej treści:
:arrow: łańcuch zawierający wszystjie znaki drukowalne oprócz podanego ciągu.

Ja potrafię napisać tylko początek dalej coś nie mogę.
Omega
wydaje mi sie ze takie cos powinno działać:

Kod
ereg("[^$omin]", $ciag);


Zwruci true, jeżeli w podanym ciągu nie ma frazy zapisanej w zmiennej $omin...

Nie testowałem...

Jeżeli chodzi ci o cos innego to sprecyzuj...
spenalzo
A co rozumiesz pod pojęciem "znaki drukowalne"?
scanner
Omega: przykro mi, ze publicznie.. Ale czy mógłbys zacząć korzystać ze słownika?

Zulus: Poza zdefiniowaniem pojęcia "znaki drukowalne", podaj to, co Ty już zrobiłeś.
zulus
($od)[[:print:]]+($do)
i to działa ale nie wiem jak dodać oprócz określonego ciągu
Omega
Cytat
Omega: przykro mi, ze publicznie.. Ale czy mógłbys zacząć korzystać ze słownika?


Nie ma sprawy... Wszyscy sie do mnie za to zcepiają, i nie mogą zrozumiec że to choroba... No może ja publicznie wyjaśnie.... biggrin.gif Walczyłem z tym od kiedy pisze dyktanda... W końcu wysłała mnie nauczycielka na badanie, a tam dostałem papierek, że to nie uleczalne... sad.gif I teraz nikt mnie nie rusza nawet w szkole, wic prosze zrozumcie... :cry: Ja nie potrafi inaczej...

Zbaczam z tematu, ale skoro juz to juz... sad.gif
scanner
Omega: moje wyjasnienie poszło na PW.
zulus
A JA DALEJ NIE WIEM CO MAM WPISAĆ sad.gif
scanner
Czekaj, czekaj.. bo ja się nie umiem połapać.
Możesz podać przykładowe stringi i string wynikowy, jaki chcesz uzyskać?
zulus
robie sobie forum i chciałem zrobić coś w stylu bbcode, aby wyodrębnić kod użyłem takiego wyrażenia
[php:1:40e16aa131]<?php
eregi("(
  1. <?php
  2. )[[:print:]]+(
  3. ?>
)", $message1, $bb);
?>[/php:1:40e16aa131]
i wszystko jest fajnie dopuki nie pojawi się tekst poniżej kodu, abo co gorsza drugi(wyświetla wszystko poniżej znacznika
  1. <?php
  2. aż do ostatniego
  3. ?>
no i właśnie w tym tkwi problem.
KaMeLeOn
[php:1:784d6baed6]<?php
$text = '1 slowo [ php ]1 kod[ /php ] 2 slowo [ php ]2 kod[ /php ] 3 slowo';
preg_match_all("#
  1. <?php
  2. (.*?)
  3. ?>
#i", $text, $matches);
print_r($matches);
?>[/php:1:784d6baed6]
Wynik jest w tablicy $matches...
Poczytaj jeszcze o samej funkcji [manual:784d6baed6]preg_match_all[/manual:784d6baed6], bo ma opcjonalny parametr który często się przydaje...

ps. znaczniki php poszerzone bo nie widac ich w ramce...
zulus
dzięki, co prawda nie do końca rozumiem to wyrażenie (chodzi o #) ale resztę kapuję BIG THX
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.