Informator
górski
Powitanie zimy - film! [zobacz]

Wyrażenia regularne (Regular expressions)

Sprawdzacz wyrażeń regularnych (Regular expressions checker) Sprawdzacz wyrażeń regularnych służy do łatwego sprawdzenia czy dana fraza spełnia podane wyrażenie regularne czy też nie. Aby sprawdzić czy dany ciąg spełnia dane wyrażenie regularne wprowadź obydwa do poniższego formularza. Skrypt zwróci wartość true gdy podana fraza spełnia podane wyrażenie bądź też false gdy nie spełnia lub w podanym wyrażeniu regularnym występuje błąd składni:

Wyrażenie regularne (np: ^[0-9]+$):
Ciąg do sprawdzenia:
Jako wyniki pokaż:

Ostatnio przeprowadzone sprawdzenia wyrażeń regularnych
Dokonanych sprawdzeń: 69270
pokaż ostatnie 5 | pokaż tylko moje (max 50)
ID Wyrażenie Ciąg Wynik Pasujące ciągi
69301^[0-9]{2}:[^a-zA-Z]{2}\.$22aAFALSE
69300^[0-9]{2}:[^a-zA-Z]{2}\.$22aaFALSE
69299[0-9]{2}:[^a-zA-Z]{2}12:a2FALSE
69298[0-9]{2}:[^a-zA-Z]{2}12a2FALSE
69297^[0-9]{2}:[^a-zA-Z]{2}\.$12a2FALSE
69296^[0-9]{2}:[^a-zA-Z]{2}\.$12a2FALSE
69295http:\/\/*http://csdcsdcscsdcTRUE
  • http://
69294http:\/\/*http://TRUE
  • http://
69293http://*http://FALSE
69292http*http://TRUE
  • http
69291http://http://FALSE
69290(http://)http://FALSE
69289(http://)$http://FALSE
69288^(http://)$http://FALSE
69287^http://$http://FALSE
69286^http://[a-zA-Z-_]+$http://FALSE
69285^http://[a-zA-Z-_]+$http://maciek.lasyk.info/FALSE
69284^http:////[a-zA-Z-_]+$http://maciek.lasyk.info/FALSE
69283^http:////[a-zA-Z-_]+$http://maciek.lasyk.info/index.php?action=regexp_checker&check_it=1FALSE
69282^http://[a-zA-Z-_]+$http://maciek.lasyk.info/index.php?action=regexp_checker&check_it=1FALSE
69281^http://+$http://maciek.lasyk.info/index.php?action=regexp_checker&check_it=1FALSE
69280^http://http://maciek.lasyk.info/index.php?action=regexp_checker&check_it=1FALSE
69279<div class="rek"><big><a href="([^"]+)".*><div class="rek"><big><a href="http://biznes.szukaj.wp.pl/" >Reklama w Internecie - b±d¼ widoczny w sieci!</a>&nbsp;</big><br />Us³ugi reklamowe w wyszukiwarce Wirtualnej PolsTRUE
  • <div class="rek"><big><a href="http://biznes.szukaj.wp.pl/" >Reklama w Internecie - b±d¼ widoczny w sieci!</a>&nbsp;</big><br />Us³ugi reklamowe w wyszukiwarce Wirtualnej Polski - boksy reklamowe, <b>
  • http://biznes.szukaj.wp.pl/
69278^(.*href=")?([^"]+)<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • <a href="http://dfdfdf.pl/dfsdf/sdds
  • <a href="
  • http://dfdfdf.pl/dfsdf/sdds
69277^.*href="?[^"]+<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • <a href="http://dfdfdf.pl/dfsdf/sdds
69276^.*href="?([^"]+)<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • <a href="http://dfdfdf.pl/dfsdf/sdds
  • http://dfdfdf.pl/dfsdf/sdds
69275^(.*href=")?([^"]+)<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • <a href="http://dfdfdf.pl/dfsdf/sdds
  • <a href="
  • http://dfdfdf.pl/dfsdf/sdds
69274(href=")?([^"]+)<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • <a href=
  • <a href=
69273href="(.*)?([^"]+)<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>
  • http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a
  • >
69272href="(.*)[^"]+<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>
  • http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a
69271href="(.*)"[^"]+<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>
  • http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda
69270inc\([^\(\)]*\)inc( )TRUE
  • inc(
  • )
69269inc\([^\(\)]*\)inc()TRUE
  • inc()
69268inc\([^\(\)]*\)inc(ppp) inc(fgfg)TRUE
  • inc(ppp)
69267inc\([^\(\)]*\)inc(ppp()FALSE
69266inc\([^\(\)]*\)inc(ppp)TRUE
  • inc(ppp)
69265inc\([.]*\)inc(ppp)FALSE
69264inc\(^[.\(\)]*\)inc(ppp)FALSE
69263inc\(^[\(\)]*\)inc(ppp)FALSE
69262inc\((^[\(\)]*)\)inc(ppp)FALSE
69261inc\((^[\(\)]*)\)inc(ppp(()FALSE
69260^[\(\)]*inc(ppp(()TRUE
69259^[\(\)]*inc(ppp()TRUE
69258^[\(\)]*inc(ppp() op(3434)TRUE
69257^[\(\)]*inc(ppp) op(3434)TRUE
69256^[\(\)]*inc(ppp)TRUE
69255[^a-zA-Z0-9]a!@#!@#bc!@#TRUE
  • !
69254[^a-zA-Z0-9]!@#!@#!@#TRUE
  • !
69253[^a-zA-Z0-9]teestFALSE
69252[a-zA-Z0-9]asdasdasdasdTRUE
  • a
69251[^a-zA-Z0-9]asdasdasdasdFALSE
69250/^[a-zA-Z0-9]{10}$/asdasdasdasdFALSE
69249^[a-zA-Z0-9]$asdasdasdasdFALSE
69248^[a-zA-Z0-9]asdasdasdasdTRUE
  • a
69247[a-zA-Z0-9]$WERTYUIOPASDFGHJTRUE
  • J
69246[a-zA-Z0-9]WERTYUIOPASDFGHJTRUE
  • W
69245^[a-zA-Z0-9]WERTYUIOPASDFGHJTRUE
  • W
69244^[a-zA-Z0-9]$WERTYUIOPASDFGHJFALSE
69243^[a-zA-Z0-9]{1,10}$as1dsadasd1FALSE
69242^[a-zA-Z0-9]{1,10}$asdsadasd1TRUE
  • asdsadasd1
69241^[a-zA-Z0-9]{1,10}$asdsadasdTRUE
  • asdsadasd
69240^[a-zA-Z0-9]{1,10}$1ASASDASDasdasdFALSE
69239^[a-zA-Z0-9]{1,10}$1!@3#$5%6^7&8(9)0qwertyuio~!pasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMFALSE
69238^[a-zA-Z\d]1!@3#$5%6^7&8(9)0qwertyuio~!pasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMTRUE
  • 1
69237^[a-zA-Z\d]1234567890qwertyuio~!pasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMTRUE
  • 1
69236^[a-zA-Z0-9]1234567890qwertyuio~!pasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMTRUE
  • 1
69235^[a-zA-Z0-9]1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMTRUE
  • 1
69234^[a-zA-Z0-9]~!@#$%^&*()_+| 1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMFALSE
69233[a-zA-Z0-9]~!@#$%^&*()_+|FALSE
69232[a-zA-Z0-9]1234567890q!wertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMTRUE
  • 1
69231[a-zA-Z0-9]1234567890q!wertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMTRUE
  • 1
69230[a-zA-Z0-9]1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMTRUE
  • 1
69229href="(.*)"+[^"]<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">
  • http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda
69228href="(.*)"+<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda"
  • http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda
69227href="(.*)"+$<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>FALSE
69226href="(.*")+$<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>FALSE
69225href="(.*")<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda"
  • http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda"
69224href="(.*)[^"]<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>
  • http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a
69223href="(.*)"<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>TRUE
  • href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda"
  • http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda
69222href="[a-zA-Z0-9\.\/:]"+<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>FALSE
69221href="([a-zA-Z0-9\.\/:])"<a href="http://dfdfdf.pl/dfsdf/sdds"><span style="sadasda">dshfkjsdh</spam></a>FALSE
69220^[0-9a-zA-Z&#177;&#230;&#234;&#179;&#241;ó&#182;&#188;&#191;&#161;&#198;&#202;&#163;&#209;Ó&#166;&#172;&#175; \-.,\(\)]{1,}$tyutyuty tyutyuty tyu.TRUE
  • tyutyuty tyutyuty tyu.
69219^[0-9a-zA-Z±æê³ñ󶼿¡ÆÊ£ÑÓ¦¬¯ \-.,\(\)]{1,}$fghfg fghfgh fghfghTRUE
  • fghfg fghfgh fghfgh
69218^[0-9 \-\(\)]{1,}$334534( 34534TRUE
  • 334534( 34534
69217^[0-9a-zA-Z]$piopiopFALSE
69216^[0-9a-zA-Z \-.,\(\)]$piopiop.FALSE
69215^[0-9a-zA-Z \-\.,\(\)]$piopiop.FALSE
69214^[0-9a-zA-Z\ \-.,\(\)]$piopiop.FALSE
69213^[0-9a-zA-Z\ \-\.,\(\)]$piopiopiopiop iopiopiopFALSE
69212^[0-9a-zA-Z \-\.,\(\)]$piopiopiopiop iopiopiopFALSE
69211^[0-9a-zA-Z \-\.,\(\)]$pTRUE
  • p
69210^[0-9a-zA-Z \-\.,\(\)]$kljljklj jkhjkhjk jhkhjkhjkhFALSE
69209^[0-9a-zA-Z \-.,\(\)]$kljljklj jkhjkhjk jhkhjkhjkhFALSE
69208^[0-9a-zA-Z&#177;&#230;&#234;&#179;&#241;ó&#182;&#188;&#191;&#161;&#198;&#202;&#163;&#209;Ó&#166;&#172;&#175; \-\.,\(\)]$kljljkljFALSE
69207^[0-9a-zA-Z±æê³ñ󶼿¡ÆÊ£ÑÓ¦¬¯ \-.,\(\)]$ghjghjghjFALSE
69206^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}$sddd@wp.plTRUE
  • sddd@wp.pl
69205^[0-9 -\(\))]{0,}$(43) 43-43FALSE
69204^[0-9 \-\(\))]{0,}$(43) 43-43TRUE
  • (43) 43-43
69203^[A-Za-z0-9](?:[.\-_](?![.\-_])|[A-Za-z0-9]){1,23}[A-Za-z0-9]$....aaaaa.aaaaFALSE
69202^[A-Za-z0-9](?:[.\-_](?![.\-_])|[A-Za-z0-9]){1,23}[A-Za-z0-9]$aaaaa.aaaaTRUE
  • aaaaa.aaaa
Dokonanych sprawdzeń: 69270
pokaż ostatnie 5 | pokaż tylko moje (max 50)

Składnia wyrażeń regularnych (Regular expressions Syntax) Na powyższy temat napisano juz całe tomiszcza - nie ma więc sensu sie rozpływać nad tym na tej stronie. Podam jedynie kilka linków do stron opisujšcych składnię wyrażeń regularnych:

Przykładowe wyrażenia regularne (Regular expressions examples) Poniżej zamieszczam kilka linków do stron zawierających przykładowe wyrażenia regularne:

Nawigator
[powrót do góry strony]

Dodaj swój komentarz
Aby dodać komentarz wystarczy podać jego treść - pozostałe pola nie są obowiązkowe. Zaznaczenie zapamiętania nicka i adresu e-mail spowoduje, iż w każdej chwili gdy wrócisz do tej strony i będziesz chciał(a) wpisać kolejny komentarz pola nick oraz e-mail zostaną automatycznie wypełnione:
 
Nick:    E-mail:

Zapamiętaj mój nick i email    Ukryj mój adres email

Wasze komentarze
 ukryj komentarze 
::docent (docent.net@gmail.com) 2008-06-23 09:57:00
someoneelse: spróbuj \((\d{1,3}) - to Ci wyciągnie jednak
liczby z zakresu 0-999 - no ale to możesz już sobie parsować za pomocą
kodu jakiegoś..
::someoneelse2008-06-21 18:58:00
Regxp mnie przerasta :/ Potrzebuje z ciagu wyciagnac liczbe (od 0 po
500) która znajduje sie zaraz po nawiasie.np:

to jest 3 test z 12 (121 prob)

i jak z tego wyciagnac ilosc prob ? \([0-9]* wyciaga mi liczbe razem z
nawiasem. dzieki za pomoc
::chf2008-03-04 14:30:00
Edytowanie własnych komentarzy też by się przydało:)

- zapytania typu (?P<cos>;), (:> warunek) nie przechodzą bo
wyrzucasz te nawiasy.
::chf2008-03-04 14:29:00
Moje propozycje:

- zapytania typu (?P&lt;cos&gt;), (:&lt; warunek) nie
przechodzą bo wyrzucasz te nawiasy.

- możliwość ustawiania opcji wyszukiwania np: /zapytanie/s
::Użytkownik anonimowy2007-08-08 10:42:00
Gratuluję strony i tematyki!!!
::docent (docent.net@gmail.com) 2007-07-02 13:42:00
No to mamy kilka nowych funkcjonalności - według życzeń ;)
  • Możliwość wprowadzania wieloliniowych stringów (pamiętajcie,
    że pod Windowsem znakiem końca linii jest rn)
  • Możliwość wyświetlania sprawdzeń dokonanych tylko przez nas
    (maximum 50 w liście)
  • Kilka drobnych usprawnień niewidocznych dla użytkownika

Mam nadzieję, że Wam się to przyda - oczywiście czekam na komentarze
:)

::Hołek (holek.n@gmail.com) 2007-07-01 17:31:00
Fajnym usprawnieniem byłaby możliwość sprawdzania wyrażeń
wieloliniowych
::Użytkownik anonimowy2007-06-28 15:23:00
Witam. Mam tekst dajmy na to: "AA dfs
<FNC>srodtytul("dlatego to wszystko";)</FNC>
dfsd". Chce zastąpić zawartość znaczników <FNC></FNC>
na wartość funkcji, która znajduje się pomiędzy nimi. Wszystko działa
dobrze, dopóki nie pojawia się funkcja z atrybutem w cudzysłowiu,
czyli dla np "hr()" wszystko jest ok.

Wyrażenie: $body =
preg_replace('/<FNC>(.*?)</FNC>/e','\1',$body);
Błąd, który wyskakuje:

Warning: Unexpected character in input: '' (ASCII=92) state=1 in
D:WWWtrajektoriaindex.php(29) : regexp code on line 1

Parse error: syntax error, unexpected $end in
D:WWWtrajektoriaindex.php(29) : regexp code on line 1

Fatal error: preg_replace() [function.preg-replace]: Failed evaluating
code: srodtytul("dlatego to wszystko";) in
D:WWWtrajektoriaindex.php on line 29


ps. W oryginalnym tekscie nie ma backslashów.
::Kamasz2007-06-25 15:39:00
dzięki - jak widze nie ma prostszej drogi :D
::docent (docent.net@gmail.com) 2007-06-25 14:43:00
A jeśli koniecznie potrzebujesz sprawdzenia tego za pomocą wyrażenia
regularnego to użyj: (?=b(d|/){20}b)bd+/d+b - a potem RTFM: href=http://www.regular-expressions.info/lookaround2.html
rel=nofollow>http://www.regular-expressions.info/lookaround2.html
::docent (docent.net@gmail.com) 2007-06-25 14:24:00
Proponuję ^(d)+(/){1}(d)+$ - a długość ciągu sprawdź sobie już
nie na poziomie kodu a nie wyrażenia regularnego.
::Użytkownik anonimowy2007-06-25 13:11:00
Cześć <^d{1,20}(/d{1,18})?$ > - nie potrafie ograniczyc
calego tego ciagu do 20 znaków. Ma ktos jakis pomysł ? 20 cyferek z
jednym ukosnikiem w srodku
::docent (docent.net@gmail.com) 2007-06-11 16:19:00
kaziuuu: zobacz sprawdzenia z ID 32123 i 32124. Czyli
jakistekst$

I poczytaj dokumentację - to jedno z bardziej podstawowych wyrażeń
regularnych.
::kaziuuu (kaziuuuu@poczta.onet.pl) 2007-06-11 13:47:00
Jak sprawdzić czy ciąg znaków ma na końcu jakiś tekst np
"jakistekst"?
::Scotty (dsdss@o2.pl) 2007-05-20 17:23:00
Hej. Czy kotś mi może pomóc. Mam problem z regexp który opisałem tu na
forum http://forum.php.pl/RegExp-t68873.html Odpisać możecie tutaj.
bardzo proszę o pomoc
::qbexus2007-04-13 18:35:00
O.K. już mam ale jak by ktoś chciał to prosze /([^/]*)$
::qbexus2007-04-13 00:02:00
Witam potrzebuje wyczyścić linki od ostatnigo slasha do końca i nic mi
nie pasuje czy może mi ktoś podpowiedzieć jakie wyrażenie by to
zalatwiało ?
::MaTi2007-03-13 19:35:00
dzięki docent, tego mi było trzeba :)
::docent (docent.net@gmail.com) 2007-03-11 16:53:00
Mati: do wyrażenia <[@%+].+> pasują ciągi:

<@test>
<%test>
<+test>

natomiast nie pasują:


<#test>

itd.. Backslash (lub jak kto woli - wtyłciach) poprzedzający znaki <
oraz > oznacza, iż mają one nie być parsowane jako składnia wyrażenia
regularnego, czyli bierzemy je jakimi są. Dalej: .+ oznacza dowolny
znak (kropka) powtórzony co najmniej raz - czyli po prostu dowolny
znak (ale jednak musi jakiś być). A dalej już został nawias kwadratowy
a w nim znaki @%+ - oznacza to jeden ze znaków w kwadratowym nawiasie.
Mniej więcej :)

A reszta.. linki na tej stronie Cię zaprowadzą do manuali odpowiednich
:)
::MaTi (dudi4155@gmail.com) 2007-03-11 14:38:00
Właśnie siedzę nad pewnym wyrażeniem regularnym i za nic nie mogę go
rozwiązać. Do tej pory nie miałem styczności z wyrażeniami
regularnymi, więc czy ktoś mógłby mi podać rozwiązanie tego?
<[@%+].+>
::Anonim (dsds@tlen.pl) 2007-03-11 08:08:00
pomylilem się e-nauk =e-mail
::Anonim (dsds@tlen.pl) 2007-03-11 07:17:00
Chodźby 23365 ale wystarczy również wpisać coś zgodne z
(.*?)"> i już się rozjeżdza.
Jak się w komentarzach najedzie na e-nauk to ma sie taki dziwny
adres:http://maciek.lasyk.info/mailto%22dsds@tlen.pl%22
zamiast mailto:dsds@tlen.pl
::docent (docent.net@gmail.com) 2007-03-09 10:32:00
Michal2000: hmm od początku tak jest właśnie - treść przesyłana
przez użytkowników nie jest parsowana a ew.kod HTML jest zamieniamy na
owe 'krzaki' :) Jeśli coś jednak znalazłeś to spróbuj jeszcze raz
wrzucić i napisz mi ID wyrażenia, w którym występuje coś, czego być
nie powinno :)
::Anonim (dsds@tlen.pl) 2007-03-09 06:29:00
Proponuję w formularzu również zablokować ponieważ np.ja często
wpisuję kod html i mi poprostu formularze się rozjeżdzają i musze
kliknąć wstecz.
::Michal20002007-02-24 22:26:00
dodaj jakies funkcje, ktore by zmieniali znaki <>"' na ich
"krzaczkowe" odpowiedniki, bo potem przy wyswieltaniu wyniku
strona sie rozjerdza
::docent (docent.net@gmail.com) 2007-02-20 10:33:00
PQS: dzięki za spostrzeżenie. Faktycznie ten przypadek przeoczyłem -
jednak już poprawiłem :)
::PQS2007-02-19 20:21:00
Dlaczego dla ciągu składającego się z samego 0 (zera) skrypt nie
działa poprawnie!
::kombat2006-08-31 21:44:00
pandres:

Mogę zaproponować co najmniej dwa rozwiązania:
1. Wykorzystujące nawiasy okrągłe:
(?s){petla:zmienna:(.*?):}
Poszukiwany tekst złapię się jako pierwsze dopasowanie zawartości
nawiasów.

2. Wykorzystujące przeglądanie wstecz i z wyprzedzeniem:
(?s)(?<={petla:zmienna:).*?(?=:})
Teraz całe wyrażenie dopasuje się do poszukiwanego tekstu.

Program znajdujący się na tej stronie zdaje się nie obsługiwać
poprawnie napisanych przeze mnie wyrażeń. Sprawdziłem je jednak za
pomocą innej aplikacji i działają w porządku.
Pozdrawiam, i życzę sukcesów :)
::macie :P2006-08-24 12:37:00
<center>
<?
$wyrazenie = stripslashes($wyrazenie);
?>
<form action="" method=GET>
<table>
<tr>
<td>Wyrażenie: </td>
<td><input type=text name=wyrazenie value='<?echo
$wyrazenie; ?>'></td>
</tr>
<tr>
<td>Tekst: </td>
<td><input type=text name=text value="<?echo $text;
?>"></td>
</tr>
<tr>
<td></td>
<td><input type=submit value=sprawdź></td>
</tr>
</table>
</form>
<?
if (@preg_match("/".$wyrazenie."/", $text)) {
echo "OK";
} else {
echo "ŹLE";
}
?>

PRZEDSTAWIAM WAM SKRYPT KTORYM U SIEBIE MOZECIE SPRAWDZAC POPRAWNOSC
WYRAZEN :P
::pandres (paneres@onet.pl) 2006-08-23 11:09:00
Mam tak string
"<table>{petla:zmienna:<tr>
<td>{img}</td>
<td>{recenzja}</td>
<td>{data}</td>
</tr>:}</table>"

i potrzebuje zrobić takie wyrażenie żeby znalało mi to co się znajduję
pomiędzy "{petla:zmienna:" a ":}", dodam tylko że
to się zmienia i nie zawsze jest takie same.

::Użytkownik anonimowy2006-08-22 18:57:00
Regular expression: [[0-9]:[0-9]{3}:[0-9]{2}]
String: [2:234:43]

Result: TRUE

Dla pana apache
::Ciemny Kapturek2006-08-22 18:53:00
Regular expression: ^[0-9]{2}:[^a-zA-Z]{2} <[@%+].+>
((:?(:?(:?ss){3,}ij)|(:?ci{5,}ag)))[abc]{[^a-zA-Z0-57-9]}.$
String: 12:12 <@ > (ssssssij)[abc]{6}.

Result: TRUE
Proszę bardzo panie matoł
::kombat2006-08-17 23:35:00
matoł:
Pasuje chociażby 00:00 <@a> (ciiiiiag)[abc]{6}.
Warto pamiętać, że wyrażenie typu ci{5,} mówi o wystąpieniu literki
'c', a potem conajmniej pięciu powtórzeniach literki 'i'. Ciąg
'cicicicici' będzie pasował, gdy w wyrażeniu umieścimy nawiasy w ten
sposób (ci){5,}. Poza tym zdaje się, że zapomniałeś o jednej spacji,
która jest w wyrażeniu.
::matoł2006-07-27 01:34:00
mam takie pytanie, czy ktoś mógł by mi powiedzieć, jaki ciąg będzie
pasował do takiego wyrażenia:
^[0-9]{2}:[^a-zA-Z]{2} <[@%+].+>
((:?(:?(:?ss){3,}ij)|(:?ci{5,}ag)))[abc]{[^a-zA-Z0-57-9]}.$

ja podawałem taki:

12:12<@a>(:ciciciciciciag)[abc]{6}.

i jeszcze kilka innych bardzo podobnych do tego wyżej, i zawsze miałem
false :/ czy ktoś moze mi powiedzieć, gdzie mam błąd ? aha, i moze
błędem są te spacje w wyrażeniu?
bardzo proszę o pomoc, bo jest mi to bardzo potrzebne ;p
pozdrawiam matoł
::Apache (apache84@wp.pl) 2006-06-11 19:32:00
Hej
moglby mi ktos pomoc jak dopasowac w wzorzec do takiej postaci
[2:260:10] a do okola inne teksty rozchodzi sie o to zeby wyciagnac z
tekstu wszystkie stringi tej postaci [x:xxx:x] razem z []. umiem to
napisac w notacji posix ale w tej perolowej nie...
prosze o pomoc
::kozzii2006-06-11 14:23:00
to chyba nie o takie wyrażenia regularne chodzi jak myślałem... :/
takie jak np tu:
http://www.ii.uj.edu.pl/~zaionc/STUDENCI/IS2005/egzASD_IS2005.pdf

zad np 2.
::docent (maciek@lasyk.info) 2006-05-07 20:57:00
Jeż: bardzo proszę ;)
::Użytkownik anonimowy2006-05-07 20:49:00
ałtomatycznie :P
::Jez2006-05-07 20:49:00
Proponuję aby wyrażnie regulane i sprawdzane było ałtomatyczne
uzupełniane w formularzu na stronie która się pokazuje po naciśnięciu
przycisku sprawdz.
Nie trza by wtedy się cofać lub wpisywać wszystkiego od nowa.
A tak ogólnie fajny skrypt :) bradzo użyteczny ;)
::Boro2006-01-23 16:27:00
A myślałem, że regexpy wreszcie się do czegoś przydadzą - a tu się
okazuje, że zwykłe funkcje php znów wystarczają :)

Dzięki i pozdrawiam
::docent (maciek@lasyk.info) 2006-01-23 15:53:00
Ok nie ma sensu tutaj bawić się regexpami - szkoda procka do tego.
Służą do tego zupełnie inne funkcje, wbudowane w PHP :) Nazywają się
strpos()
oraz rel=nofollow>substr().

Chcąc wyciągnąć 'dowolny tekst1' i znając formę ograniczników, czyli
znając $a1 oraz $a2 robimy to dokładnie tak:

$a1 = '::';
$a2 = '---';
$string = 'dowolny tekst0' .$a1 . 'dowolny tekst1' . $a2 . 'dowolny
tekst2' . $a2;

$pos_start = strpos($string,$a1) + strlen($a1);
$pos_end = strpos($string,$a2);
$length = $pos_end - $pos_start;

$twoj_tekst = substr($string,$pos_start,$length);

echo $twoj_tekst;
?>


Polecam grupę dyskusyjną pl-comp-lang-php (informacje na jej temat
znajdziesz target=_blank>tutaj :) Ponadto możesz też zasięgać języka dot.PHP
na target=_blank>forum.php.pl :)
::Boro2006-01-23 15:26:00
To 'a1' i 'ble ble' to tylko przyładowe. Chodzi o to że tekst jest
postaci (php):
$string = "dowony tekst0" .$a1 . "dowolny tekst1 "
. $a2 . "dowolny tekst2" . $a2

Chodzi mi o wyodrębnienie pierwszego, dowolnego tekstu. Zrobiłem to w
taki sposób:

$cs = explode($a1, $string);
$c = $cs[1];
$cs = explode($a2, $c);
$c = $cs[0];

I zastanawiam się, czy nie dałoby się tego zapisać za pomocą wyrażeń
regularnych...
::docent (maciek@lasyk.info) 2006-01-23 15:00:00
Jeśli konkretnie taki ciąg to najprościej:

$string = 'a1 ble ble ble a2 ble ble a2';
$regexp = "/(b[^a]+b){3}/";
preg_match($regexp,$string,$matches);
print_r($matches);
?>

Jeśli nie o to chodzi to postaraj się jakoś skonkretyzować - napisz
czy lliczba powtórzeń stringa jest z góry okreslona, czy też nie,
(czyli czy zawsze chodzi o 'ble ble ble' czy też może być jednak
czasem 'ble ble' a innym razem jedno 'ble' by znów później pojawiło
się 6 razy 'ble ble ble ble ble ble' :)

Ponadto napisz jaki jezyk programowania :) No i daj znać jeszcze czy
to co napisałeś - czyli pierwsze - oznacza, iż w przykładowym
ciągu a ble ble ble a d f e r ble ble ble fg fd d
interesuję Cię jedynie to pierwsze ble ble ble czy też obydwa.
::Boro2006-01-23 14:40:00
Dziękuję za odpowiedź. Niestety mało dotychczas pracowałem w
wyrażeniach regularnych i nie do końca mi ona wystarcza ;)
Sprecyzuję ciąg: "a1 ble ble ble a2 ble ble a2", chciałbym
wyciągnąc z niego pierwsze 'ble ble ble'. Jakiego wyrażenia powiniem
użyć?
::docent (maciek@lasyk.info) 2006-01-23 14:17:00
Jeśli mowa o PHP to preg_match() załatwia sprawę doskonale:

<?
$string = 'a ble1 a ble2 a';
$regexp = "/b[^a]+b/";
preg_match($regexp,$string,$matches);
print_r($matches);
?>
::Boro2006-01-23 13:45:00
Mam pytanie. Jest string: "a ble1 a ble2 a", chciałbym z
niego wyciągnąć "ble1" (ble1 i ble2 to dowolne ciągi znaków
nie zawierające 'a'). gdy daję regex "a(.*)a on zawsze zwraca
długi ciąg 'ble1 a ble2' zamiast samego ble1... jak zrobić aby zwracał
samo 'ble1'?
::docent (maciek@lasyk.info) 2006-01-17 14:19:00
Proszę bardzo - wrzuciłem w automat (ID: 389,390)- wyciągnij je sobie
:)
A na przyszłość - poniżej zamieściłem linki do tutoriali i manuali -
bardzo polecam href=http://www.regular-expressions.info/tutorial.html
target=_blank>http://www.regular-expressions.info/tutorial.html a
w szczególności - Twój problem jest rozwiązany tutaj: href=http://www.regular-expressions.info/completelines.html
target=_blank>http://www.regular-expressions.info/completelines.html a> opisany jako "Finding Lines Containing or Not Containing Certain
Words
".
::Użytkownik anonimowy2006-01-17 00:35:00
dobra, a powiedz mi, jak najkrócej będzie wyglądać wyrażenie
sprawdzające, że w ciągu występuje przynajmniej jedna cyfra,
przynajmniej jedna litera i przynajmniej jeden znak specjalny np.
11Q@aa - dobrze , 12121@ - źle
::docent (maciek@lasyk.info) 2006-01-05 13:30:00
Dodałem pobsługę sprawdzania wulgaryzmów w przeprowadzanych
wyszukiwaniach - zdarzyło się komuś użyc kilku wyrazów, które
niekoniecznie ładnie wyglądają :)

Oczywiście można przeprowadzać sprawdzenia przy użyciu wulgaryzmów -
jednak nie zostają one wyświetlane na liście ostatnio dokonanych
sprawdzeń.
::docent (maciek@lasyk.info) 2005-12-28 10:16:00
Poprawiłem kilka błędów w wyświetlaniu sprawdzanych regexpów. Ponadto
dodałem możliwość komentowania zawartości tej strony - dzięki temu
możecie pisać co chcielibyście tutaj zmienić, czego tu brakuje etc :)
 ukryj komentarze 

Nawigator
[powrót do góry strony]