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ń: 131613
pokaż ostatnie 5 | pokaż tylko moje (max 50)
ID Wyrażenie Ciąg Wynik Pasujące ciągi
131644^\<div id=(*.)\>(*.)\<\/div\>$sdsad asd asdas <div id=facttext> </div>FALSE
131643^div *. div$sdsad asd asdas div id=facttext divFALSE
131642^div (*.) div$sdsad asd asdas div id=facttext divFALSE
131641^div (*.)? div$sdsad asd asdas div id=facttext divFALSE
131640^div (*.)? div$sdsad asd asdas div id="facttext" divFALSE
131639^div (*.)? \/div$sdsad asd asdas div id="facttext" /divFALSE
131638^div (*.)? \/div$sdsad asd asdas <div id="facttext"></div>FALSE
131637^div\s(*.)?\sdiv$sdsad asd asdas <div id="facttext"></div>FALSE
131636^div(*.)?div$sdsad asd asdas <div id="facttext"></div>FALSE
131635^div id="facttext"(*.)?\/div$sdsad asd asdas <div id="facttext"></div>FALSE
131634^<div id="facttext">(*.)?<\/div>$sdsad asd asdas <div id="facttext"></div>FALSE
131633^<div id="facttext">(*.)?</div>$sdsad asd asdas <div id="facttext"></div>FALSE
131632<div id="facttext">(*.)?</div>sdsad asd asdas <div id="facttext"></div>FALSE
131631^[[:alpha:]^a]{1,}$abTRUE
  • ab
131630^[[:alpha:]^a]{1,}$abTRUE
  • ab
131629\[zn](.*?)\[/zn][zn] test [/zn]FALSE
131628\[zn](.*?)\[/zn][zn] test [/zn]FALSE
131627[.*^}]{a}TRUE
  • }
131626{[.*^}]}{a}FALSE
131625.*$2010-02-24 05:57:00.123TRUE
  • 2010-02-24 05:57:00.123
131624^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]{1,})*\.([a-zA-Z]{2,}){1}$qcor.asa@das.plTRUE
  • qcor.asa@das.pl
  • .asa
  • pl
131623a-zA-Z&#177;&#230;&#234;&#179;&#241;ó&#182;&#188;&#191;&#161;&#198;&#202;&#163;&#209;Ó&#166;&#172;&#175;aaaaaaFALSE
131622a-zA-Z±æê³ñ󶼿¡ÆÊ£ÑÓ¦¬¯1111111FALSE
131621^bar+bar0004 bar0005TRUE
  • bar
131620^bar$bar0004 bar0005FALSE
131619^[a-zA-Z]{1,256}$Se1BatchLogonRight1FALSE
131618^[\w]{1,256}$Se1BatchLogonRight1TRUE
  • Se1BatchLogonRight1
131617^[\w]{1,256}$SeBatchLogonRight1TRUE
  • SeBatchLogonRight1
131616^[\w]{1,256}$SeBatchLogonRightTRUE
  • SeBatchLogonRight
131615/(?:.*)?PageID=(.*?)&(?:.*)?/http://devel.torn.com.pl/palio/html.run?_Instance=retail_dev&_PageID=385&_SessionID=3745&_SessionKey=1276577850&_LoginID=7&_CheckSum=2060214875FALSE
131614s/Jednym.z.p.*?obiektowym//]Perl zosta&#179; zaprojektowany jako praktyczne narz&#234;dzie do analizy plików tekstowych i tworzenia raportów. Jednym z naczelnych hase&#179; jest Mo&#191;na to zrobi&#230; na ró&#191;ne sposoby (ang. ThereFALSE
131613s/Jednym.*?obiektowym//]Perl zosta³ zaprojektowany jako praktyczne narzêdzie do analizy plików tekstowych i tworzenia raportów. Jednym z naczelnych hase³ jest Mo¿na to zrobiæ na ró¿ne sposoby (ang. There is more than one FALSE
131612^.o.a$molaTRUE
  • mola
131611^.o.a$mola miala 4 lapki a pola tylko trzyFALSE
131610^.o.a$mola mia³a 4 lapki a pola tylko trzyFALSE
131608^[#,@].+@a kTRUE
  • @a k
131607^[#,@].+#a kTRUE
  • #a k
131606^{#,@}.+#a kFALSE
131605^a.+a kTRUE
  • a k
131604^a.+aFALSE
131603^a.+alikTRUE
  • alik
131602cache_time_minute = (.+)[;]$cache_time_minute = jacek;TRUE
  • cache_time_minute = jacek;
  • jacek
131601[cache_time_minute] = (.+)[;]$cache_time_minute = jacek;TRUE
  • e = jacek;
  • jacek
131600[cache_time_minute](.+)[;]$cache_time_minute = jacek;TRUE
  • cache_time_minute = jacek;
  • ache_time_minute = jacek
131599[cache_time_minute = ]{1}(.+)[;]$cache_time_minute = jacek;TRUE
  • cache_time_minute = jacek;
  • ache_time_minute = jacek
131598[cache_time_minute = ](.+)[;]$cache_time_minute = jacek;TRUE
  • cache_time_minute = jacek;
  • ache_time_minute = jacek
131597[cache_time_minute = ] ( .+)[;]$cache_time_minute = jacek;FALSE
131596[cache_time_minute = ] (.+)[;]$cache_time_minute = jacek;TRUE
  • e = jacek;
  • = jacek
131595[cache_time_minute =] (.+)[;]$cache_time_minute = jacek;TRUE
  • e = jacek;
  • = jacek
131594[?cache_time_minute =] (.+)[;]$cache_time_minute = jacek;TRUE
  • e = jacek;
  • = jacek
131593[?cache_time_minute =] (.+) [;]$cache_time_minute = jacek;FALSE
131592[?cache_time_minute =](.+)[;]$cache_time_minute = jacek;TRUE
  • cache_time_minute = jacek;
  • ache_time_minute = jacek
131591[\$cache_time_minute =](.+)[;]$cache_time_minute = jacek;TRUE
  • $cache_time_minute = jacek;
  • cache_time_minute = jacek
131590[$cache_time_minute =](.+)[;]$cache_time_minute = jacek;TRUE
  • $cache_time_minute = jacek;
  • cache_time_minute = jacek
131589[$cache_time_minute =](.+)[;]$cache_time_minute = jacekFALSE
131588[0-9]+(\.[0-9]+)?(E[+\-]?[0-9]+)?23.45E+50TRUE
  • 23.45E+50
  • .45
  • E+50
131587[0-9]+(\.[0-9]+)?(E[+\-]?[0-9]+)?2.5E+50TRUE
  • 2.5E+50
  • .5
  • E+50
131586[0-9]+(\.[0-9]+)?(E[+\-]?[0-9]+)?2.5E-50TRUE
  • 2.5E-50
  • .5
  • E-50
131585[0-9]+(\.[0-9]+)?(E[+\-]?[0-9]+)?2.5E-5TRUE
  • 2.5E-5
  • .5
  • E-5
131584[0-9]+(\.[0-9]+)?(E[+\-]?[0-9]+)?23.5555TRUE
  • 23.5555
  • .5555
131583[0-9]+(\.[0-9]+)?(E[+\-]?[0-9]+)?2.5TRUE
  • 2.5
  • .5
131582[0-9]+(\.[0-9]+)?(E[+\-]?[0-9]+)?245TRUE
  • 245
131581[0-9]+(\.[0-9]+)?(E[+\-]?[0-9]+)?2TRUE
  • 2
131580[a-c]+AAAAAAFALSE
131579[a-c]+dFALSE
131578[a-c]+cbaTRUE
  • cba
131577[a-c]+aaaTRUE
  • aaa
131576^700-[78]([1-6]|[A]).*700-71 700-72 700-73 700-74 700-75 700-76 700-7A 700-81 700-82 700-83 700-84 700-85 700-86 700-8BTRUE
  • 700-71 700-72 700-73 700-74 700-75 700-76 700-7A 700-81 700-82 700-83 700-84 700-85 700-86 700-8B
  • 1
131575^700-[78]([1-6]|[A]).*700-71 700-72 700-73 700-74 700-75 700-76 700-7A 700-81 700-82 700-83 700-84 700-85 700-86 700-80TRUE
  • 700-71 700-72 700-73 700-74 700-75 700-76 700-7A 700-81 700-82 700-83 700-84 700-85 700-86 700-80
  • 1
131574^700-[78]([1-6]|[A]).*700-71 700-72 700-73 700-74 700-75 700-76 700-7A 700-81 700-82 700-83 700-84 700-85 700-86 700-8ATRUE
  • 700-71 700-72 700-73 700-74 700-75 700-76 700-7A 700-81 700-82 700-83 700-84 700-85 700-86 700-8A
  • 1
131573^[\w\d\_\s\-]{0,50}$asd asdTRUE
  • asd asd
131572^[\w\d\_\s\-]{0,50}$asd asdTRUE
  • asd asd
131571^[\w\d\_\s\-]{1,50}$asd asdTRUE
  • asd asd
131570^[\w\d\_\-]{1,50}$asd asdFALSE
131569^[\w\d\_\-]{1,50}$asdTRUE
  • asd
131568^[\w\d\_\-]{1,50}$asdTRUE
  • asd
131567^[\w\d\_\-]{1,50}$asdTRUE
  • asd
131566^[\w\d\_\-]{1,50}$kasljdfhlkjh asdfkjhFALSE
131565^(img)([0-9]{2})([0-9]{2})([0-9a-z_-])(gif|jpg|jpeg|png|rar|zip|pdf|psd)$img0002aa_cc_ee_ll_nn_oo_ss_zz_zz_-_.jpgFALSE
131564/(Fil.*?)/isala ma kota imieniem filemon dzordzFALSE
131563^k.*[^w]a$krowaFALSE
131562^k.*[^w]a$korwaFALSE
131561^k.*[^w]a$koraTRUE
  • kora
131560"^k.*[^w]a$"koraFALSE
13155916 G16 GBTRUE
  • 16 G
13155816 G16 GBTRUE
  • 16 G
13155716 G17 GFALSE
13155616 G16 GTRUE
  • 16 G
131555/16 G/16 GFALSE
131554"/16 G/"16 GFALSE
131553"/16 G/"17 GFALSE
131552[16 G]17 GTRUE
  • 1
131551[16 G]16 GTRUE
  • 1
131550[m.k]makTRUE
  • m
131549[mak]makTRUE
  • m
131548"mak"makFALSE
131547"m.k"makFALSE
131546"m.k"mukFALSE
131545"16.G"16 GFALSE
131544"16.G"16GFALSE
Dokonanych sprawdzeń: 131613
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 
::zineEresseRet (seomancer02@gmail.com) 2010-02-03 21:23:00
del.
Sorry, wrong topic.
::zineEresseRet (seomancer02@gmail.com) 2010-01-29 13:09:00
del.
Sorry, wrong topic.
::koziolek2009-09-17 14:11:00
Dało by radę przerobić, żeby sprawdzał wszystko, a nie kończył
znalezieniu pierwszego?

Przykład: ID = 112687
::LaTravelGirl (bonnybracewell@gmail.com) 2009-06-26 12:06:00
Fun and Cool Stuff
::NeilmLemeax (masoretion@gmail.com) 2009-04-17 20:41:00
Hello. And Bye.
::Tolaassiresek (grikepeelphal@gmail.com) 2009-04-07 02:04:00
HELLO WORLD!
::reipsyrar (unesserty@mail.ru) 2009-04-01 01:08:00
Hello. And Bye.
::munidores (anagapiburam19383@gmail.com) 2008-09-22 18:32:00
Nowadays people are mostly release and apart from
This episode gives a lot of advantages for a yourselves and makes our
spirit easier and more fascinating
If you are interested in of age sites, you choice beyond question
accept me
Today you can judge the total you like in the internet
It was naturally unachievable in aforesaid centuries
::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]