Jaką składnią posługiwać się przy wpisywaniu wzorca?

Wyrażenia regularne wpisuje się w formie separator{wyrażenie}separator, np. /^([a-z]*)$/i lub @^(?:http://)?([^/]+)@i. Stosować można wszelkie formy zgodne z funkcjami sprawdzającymi poprawność wyrażeń regularnych w PHP (przykład).

Dlaczego wyrażenie regularne powinno być wpisywane z separatorami?

Dzieje się tak dlatego, że wpisywanie wzorca z uwzględnieniem separatorów pozwala na dodanie modyfikatorów do niego. W wypadku ich braku skrypt domyślnie doda / na początku wyrażenia i / na jego końcu.

Czy mogę dodawać jakąkolwiek treść do testera?

Generalnie to użytkownik wyznacza jaką treść i pod jakim kątem chce testować. Musi on jednak posiadać pełne prawa do publikacji testowanej treści, gdyż będzie ona dostępna dla innych internautów. Należy także unikać wpisywania zwrotów obscenicznych, wulgarnych, czy wskazujących zasoby niezgodne z polskim prawem. Użytkownik ponosi pełną odpowiedzialność za treści publikowane przez niego w serwisie. Na uzasadnioną prośbę osób trzecich poszczególne wpisy mogą zostać usunięte z serwisu.

Czym są wyrażenia regularne?

Wyrażeniami regularnymi nazywami wzorce opisujące ciąg znaków.

  1. wikipedia.org - definicja wyrażeń regularnych
  2. regular-expressions.info - kompendium wiedzy
  3. php.net - użycie w PHP

Gdzie można znaleźć przykładowe wzorce?

W sieci znajduje się całe morze przykładowych wyrażeń. Warto zainteresować się przykładowo:

  1. 15 przydatnych wyrażeń regularnych w PHP
  2. regexlib.com - biblioteka wzorców

Znalazłem błąd w serwisie. Gdzie mogę go zgłosić?

Zauważone błędy proszę zgłaszać w komentarzach pod tym artykułem.

Jestem użytkownikiem forum. Czy mogę jakoś pokazać wyniki testu wyrażenia?

Tak. Przy każdym sprawdzonym wzorcu, w kolumnie identyfikatora, znajduje się odnośnik do strony testowanego wyrażenia. Wystarczy skopiować odnośnik i podzielić się nim ze znajomymi.

W jaki sposób mogę pomóc w rozwoju serwisu?

Osoby chętne do pomocy mogą jej udzielić w następujący sposób:

  1. Poprzez dobrowoloną dotację PayPal
  2. Poprzez wykonanie tłumaczenia serwisu. Aktualnie poszukiwane są tłumaczenia na języki: niemiecki, hiszpański, francuski, włoski i rosyjski. Jeżeli jesteś zainteresowany zapraszam do korespondencji
  3. Poprzez zamieszczenie reklamy w serwisie
  4. Poprzez dodanie serwisu do ulubionych na serwisach społecznościowych

Polityka używania cookies i podobnych technologii.

Cookies wykorzystywane są na następujących zasadach:

  1. W związku z udostępnianiem funkcji testowania wyrażeń regularnych i personalizacją http://regexp.pl (w dalszej części zwanego „Serwisem”) stosuje cookies (tzw. ciasteczka), tj. informacje zapisywane przez serwery na urządzeniu końcowym użytkownika. Serwery mogą odczytać informacje przy każdorazowym połączeniu się z tego urządzenia końcowego lub używać innych technologii o funkcjach tożsamych z ciasteczkami. W niniejszym dokumencie, informacje dotyczące cookies mają zastosowanie również do innych podobnych technologii stosowanych w ramach Serwisu. Pliki cookies stanowią dane informatyczne, w szczególności pliki tekstowe, które przechowywane są w urządzeniu końcowym użytkownika serwisu internetowego. Cookies zazwyczaj zawierają nazwę domeny serwisu internetowego, z którego pochodzą, czas przechowywania ich na urządzeniu końcowym oraz unikalny numer.
  2. Pliki cookies wykorzystywane są w celu:
    • dostosowania zawartości Serwisu do preferencji użytkownika oraz optymalizacji korzystania z niej; w szczególności pliki te pozwalają rozpoznać urządzenie użytkownika serwisu internetowego i odpowiednio wyświetlić stronę internetową, dostosowaną do jego indywidualnych potrzeb,
    • tworzenia statystyk, które pomagają zrozumieć, w jaki sposób użytkownicy serwisu korzystają ze stron internetowych, co umożliwia ulepszanie ich struktury i zawartości,
    • utrzymania sesji użytkownika serwisu internetowego (po zalogowaniu), dzięki której użytkownik nie musi na każdej podstronie serwisu ponownie wpisywać loginu i hasła,
    • dostarczania użytkownikom treści reklamowych bardziej dostosowanych do ich zainteresowań.
  3. W ramach naszych serwisów internetowych możemy stosować następujące rodzaje plików cookies:
    • „niezbędne” pliki cookies, umożliwiające korzystanie z usług dostępnych w ramach serwisu internetowego, np. uwierzytelniające pliki cookies wykorzystywane do usług wymagających uwierzytelniania w ramach Serwisu,
    • pliki cookies służące do zapewnienia bezpieczeństwa, np. wykorzystywane do wykrywania nadużyć w zakresie uwierzytelniania w ramach serwisu,
    • pliki cookies, umożliwiające zbieranie informacji o sposobie korzystania ze stron internetowych serwisu,
    • „funkcjonalne” pliki cookies, umożliwiające „zapamiętanie” wybranych przez użytkownika ustawień i personalizację interfejsu użytkownika, np. w zakresie wybranego języka lub regionu, z którego pochodzi użytkownik, rozmiaru czcionki, wyglądu strony internetowej itp.,
    • „reklamowe” pliki cookies, umożliwiające dostarczanie użytkownikom treści reklamowych bardziej dostosowanych do ich zainteresowań.
  4. W wielu przypadkach oprogramowanie służące do przeglądania stron internetowych (przeglądarka internetowa) domyślnie dopuszcza przechowywanie plików cookies w urządzeniu końcowym użytkownika. Użytkownicy serwisu mogą dokonać w każdym czasie zmiany ustawień dotyczących plików cookies. Ustawienia te mogą zostać zmienione w szczególności w taki sposób, aby blokować automatyczną obsługę plików cookies w ustawieniach przeglądarki internetowej bądź informować o ich każdorazowym zamieszczeniu w urządzeniu użytkownika serwisu internetowego. Szczegółowe informacje o możliwości i sposobach obsługi plików cookies dostępne są w ustawieniach oprogramowania (przeglądarki internetowej). Niedokonanie zmiany ustawień w zakresie cookies oznacza, że będą one zamieszczone w urządzeniu końcowym użytkownika, a tym samym będziemy przechowywać informacje w urządzeniu końcowym użytkownika i uzyskiwać dostęp do tych informacji.
  5. Wyłączenie stosowania cookies może spowodować utrudnienia korzystanie z niektórych usług w ramach naszych serwisów internetowych, w szczególności wymagających logowania, czy personalizacji.
  6. Pliki cookies mogą być zamieszczane w urządzeniu końcowym użytkownika serwisu internetowego, a następnie wykorzystywane przez współpracujących z Serwisem reklamodawców, przez firmy badawcze oraz dostawców aplikacji multimedialnych.

Zasady opisane przy pomocy artykułu i w zgodzie z jednoznacznym zezwoleniem jego autora do użycia podlinkowanego tam tekstu polityki cookies.

regexp.pl

tester wyrażeń regularnych

Zmień język na polski.

Zmień język na angielski.

Pokaż/ukryj listę ostatnich testów.

Pokaż listę tylko moich testów.

Pokaż listę wszystkich testów.

Wyświetl zawartość kanału RSS.

Pokaż pomoc.

Rozwiń listę wyników, aby zobaczyć rezultat testu.

Tester wyrażeń regularnych pozwoli Ci w prosty sposób sprawdzić poprawność wykorzystywnego wzorca i frazy. Wystarczy, że wypełnisz poniższy formularz, a skrypt zwróci wszelkie niezbędne do walidacji dane.

Dodając wzorzec i ciąg znaków do sprawdzenia potwierdzasz, że masz pełne prawa do upubliczniania zawartych w nich treści.

ID Wyrażenie regularne Ciąg znaków Wynik Zwracane ciągi znaków Link
23804 \.*src=(?)\.*

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html >
<head>

</head>
<body>


function ajaxscriptLoader() {

this.AJAX = null;

if (window.XMLHttpRequest) {
this.AJAX = new XMLHttpRequest();
}
else {
this.AJAX = new ActiveXObject("Microsoft.XMLHTTP");
}

if (this.AJAX != null) {
this.AJAX.onreadystatechange = function () {
if (this.AJAX.readyState == 4) {
this.attachScript(AJAX.responseText, AJAX.status, AJAX.responseXML);
}
else {
throw "Load script error";
}
}
}

var attachScript = function attachScript(responseText, responseStatus, responseXML) {
if (responseStatus == 200) {
eval(responseText);
}
}

this.load = function (url, passData, postMethod, async) {

async = async || false;
passData = passData || {};
postMethod = postMethod || "POST";

if (this.AJAX == null) {
return false;
}
else {
var timestamp = new Date();

if (postMethod == 'POST') {
var uri = urlCall + '?timestamp=' + (timestamp * 1);
this.AJAX.open(postMethod, uri, async);
this.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
this.AJAX.send(passData);
}
else {
var uri = urlCall + '?';
for (var dataName in passData) {
uri = uri + (dataName + "=" + passData[dataName] + "&");
}
var uri = uri + ('timestamp=' + (timestamp * 1));
this.AJAX.open("GET", uri, false);
this.AJAX.send(null);
}
return true;
}
}
}

// ajaxObject is an object constructor, pass it the server url you want it to call
// and the function name you want it to call when it gets the data back from the server.
// Use the .update() method to actually start the communication with the server.
// The first optional argument for update is the data you want to send to the server.
// ajaxvar.update('id=1234&greed=good&finish=true');
// The second optional argument for update is 'POST' if you want to send the data
// as a POST instead of the default GET (post can handle larger amounts of data and
// the data doesn't show up in your server logs).
// ajaxvar.update('id=1234&greed=good&finish=true','POST');

alert('load scripts');

var loadScriptViaAjax = new ajaxscriptLoader();

var regex = new RegExp("");
regex.ignoreCase = true;

document.body.innerHTML.match(regex);

for (var i = 0; i < document.scripts.length; i++) {
if(document.scripts[i].src != '')
{
loadScriptViaAjax.load(document.scripts[i].src);
}
}


<form name="form1" method="post" action="/Popups/PopUp.aspx?ControlUrl=%7e%2fPopups%2fFinanceInfoPopup.ascx" id="form1">
<div>
<input type="hidden" name="inputdata" id="inputdata" value="" />
<input type="hidden" name="ucPopUp$ucPopUp" id="ucPopUp$ucPopUp" value="" />
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTIwMjcwNzU4MzgPZBYCAgMPFgIeBmFjdGlvbgVCL1BvcHVwcy9Qb3BVcC5hc3B4P0NvbnRyb2xVcmw9JTdlJTJmUG9wdXBzJTJmRmluYW5jZUluZm9Qb3B1cC5hc2N4FgICAw9kFgJmD2QWAgICD2QWAgINDw9kFgIeB29uY2xpY2sFlgFqYXZhc2NyaXB0OnNob3dQb3BVcCgndWNQb3BVcCR1Y1BvcFVwJywnVGVzdCcsJ1BvcFVwLmFzcHg/Q29udHJvbFVybD0lN2UlMmZQb3B1cHMlMmZGaW5hbmNlSW5mb1BvcHVwLmFzY3gnLCc2NTAnLCczNTAnLCcnLE9uQ2xvc2UsdHJ1ZSk7IHJldHVybiBmYWxzZTtkZI4lIQ/b5Oimx9h0jUxhce84F9Jn" />
</div>


//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>








//<![CDATA[
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
//]]>






<div>

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWCwKjpr63DgL14oDSAQLx47fHDALy47fHDAKnyPI4At3c97IKAt3c87IKAsXwyIIPArzM+YUPAsCJ+s8NAva1noMOLDEe6U7OMPGUhqAZsCQBKEhKyt8=" />
</div>

//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ScriptManager1', document.getElementById('form1'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls([], [], [], 90);
//]]>


<div>


<div style="margin: 10px 10px 10px 10px">
<div id="ucPopUp_pnSearchParams" class="ms-propertysheet">

<div style="margin: 10px 10px 10px 10px">
<table cellspacing="0" border="0">
<tr>
<td class="ms-formlabel" style="width: 150px">
<span id="ucPopUp_lblBranch">Pion</span>
</td>
<td class="ms-formbody" style="width: 300px">
<select name="ucPopUp$lstBranch" id="ucPopUp_lstBranch" style="width:200px;">
<option value=""></option>
<option value="pion1">pion 1</option>
<option value="pion2">pion 2</option>

</select>
</td>
</tr>
<tr>
<td class="ms-formlabel" style="width: 150px">
<span id="ucPopUp_lblAccount">Konto</span>
</td>
<td class="ms-formbody" style="width: 300px">
<select name="ucPopUp$lstAccount" id="ucPopUp_lstAccount" style="width:200px;">
<option value=""></option>
<option value="konto1">konto 1</option>
<option value="konto2">konto 2</option>

</select>
</td>
</tr>
<tr>
<td class="ms-formlabel" style="width: 150px">
<span id="ucPopUp_lblAmount">Kwota</span>
</td>
<td class="ms-formbody" style="width: 300px">
<input name="ucPopUp$txtAmount" type="text" id="ucPopUp_txtAmount" style="width:200px;" />
</td>
</tr>
<tr>
<td>
<br />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="ucPopUp$btnAdd" value="Dodaj" >
<input type="hidden" name="ucPopUp$ucPopUp$test" id="ucPopUp_ucPopUp_test" value="test" />


<div>
<span id="divMousmove" ></span>
<span id="iframeMousmove"></span>
</div>



<input type="submit" name="ucPopUp$btnClosed" value="Dodaj" id="ucPopUp_btnClosed" class="ms-ButtonHeightWidth" />
</td>
</tr>
</table>
</div>

</div>
</div>

</div>



//<![CDATA[


//loadjscssfile("../JavaScripts/jquery-1.4.2.js", "js");

function ></div>');

div.insertBefore(iframe);
div.css({ top: iframe.position().top, left: 0 });
div.height(iframe.height());
div.width(iframe.width());
};

var _stop = function () {
$('#iframe_div').remove();
};

var _close = function () {
var returnValue = window.returnValue;

if (typeof (onClose) == "function" && returnValue != undefined) {
eval('onClose(returnValue)');
}

if (returnValue != undefined) {
if (reloadPage) {
returnValue.RaiseCloseEvent = reloadPage;
var jsonReturnValue = Sys.Serialization.JavaScriptSerializer.serialize(returnValue);
document.getElementById('ucPopUp$ucPopUp').value = jsonReturnValue;
__doPostBack(id, '');
}
else {
var jsonReturnValue = Sys.Serialization.JavaScriptSerializer.serialize(returnValue);
document.getElementById('ucPopUp$ucPopUp').value = jsonReturnValue;
}
}

window.returnValue = undefined;
iframe.remove();
};

var _open = function () {
};

var dialog = $('').dialog({
title: title,
autoOpen: true,
width: width,
height: height,
modal: true,
resizable: true,
autoResize: true,
overlay: {
opacity: 0.5,
background: "black"
},
open: _open,
close: _close,
resizeStart: _start,
resizeStop: _stop,
dragStart: _start,
dragStop: _stop
}).width(width - 30).height(height - 30);

var iframe = dialog;

jQuery.post(url, { inputdata: data },
function (data, status) {
var doc = iframe[0].contentWindow.document; // contentWindow works in IE7 and FF
$(doc).ready(function () {

});
doc.open();
doc.write(data);
doc.close();

}, 'html');

}
Sys.Application.initialize();
//]]>

</form>
</body>
</html>
fałsz
23803 \.*src=(?)\.* src="assadsd" prawda
  1. src=
23802 (IADA-1$) IADA-10 fałsz
23801 ^([0-9]{2})-([A-Z]{3})$ 12-PPP


fałsz
23800 ^([0-9]{2})-([a-z]{3})$ 12-ppp

fałsz
23799 (IADA-1) IADA-10 prawda
  1. IADA-1
23798 ^([0-9]{2})-([a-z]{3})$ 12-ads

fałsz
23797 ^([0-9]{2})-([0-9]{3})$ 12-ads

fałsz
23796 ^([0-9]{2})-([0-9]{3})$ 12
fałsz
23795 ^([0-9]{2})-([0-9]{3})$ 12-123
prawda
  1. 12-123
    • 12
    • 123
23794 ^([0-9]{2})-([0-9]{3})$/D 12-123
fałsz
23793 /^([0-9]{2})-([0-9]{3})$/D 12-123
fałsz
23792 /^([0-9]{2})-([0-9]{3})$/D 12-123$ fałsz
23791 /^([0-9]{2})-([0-9]{3})$/D qwefqwecqwe fałsz
23790 ^(?!\\-)(((?!..\\-\\-)[\\u0030-\\u0039\\u0061-\\u007a\\u00b7\\u00e0-\\u00ff\\u0101-\\u017e\\-]{1,63}))(?<!\\-)(\\.(?!\\-)(?!xn\\-\\-)[a-z0-9\\-]{1,63}(?<!\\-)(\\.(?!\\-)(?<!\\-))?\\.[a-z]{2,4}$ aaa.pl fałsz
23789 ^[A-Z]{4}-[0-9]{4}-[a-z]{4}-[A-Z]{4}$ ASLJ-0411-proh-ALDL prawda
  1. ASLJ-0411-proh-ALDL
23788 ^[A-Z]{4}-[0-9][0-9][0-9][0-9]-[a-z][a-z][a-z][a-z]-[A-Z][A-Z][A-Z][A-Z]$ A1SLJ-0411-proh-ALDL fałsz
23787 ^[A-Z]{4}-[0-9][0-9][0-9][0-9]-[a-z][a-z][a-z][a-z]-[A-Z][A-Z][A-Z][A-Z]$ ASLJ-0411-proh-ALDL prawda
  1. ASLJ-0411-proh-ALDL
23786 ^[A-Z][A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]-[a-z][a-z][a-z][a-z]-[A-Z][A-Z][A-Z][A-Z]$ ASLJ-0411-proh-ALDL prawda
  1. ASLJ-0411-proh-ALDL
23785 ^[A-Z][A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]-[a-z][a-z][a-z][a-z]-[A-Z][A-Z][A-Z][A-Z]$ ASLJ-0411-proh-ALDL1 fałsz
23784 ^[A-Z][A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]-[a-z][a-z][a-z][a-z]-[A-Z][A-Z][A-Z][A-Z] ASLJ-0411-proh-ALDL1$ prawda
  1. ASLJ-0411-proh-ALDL
23783 ^[A-Z][A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]-[a-z][a-z][a-z][a-z]-[A-Z][A-Z][A-Z][A-Z] ASLJ-0411-proh-ALDL1 prawda
  1. ASLJ-0411-proh-ALDL
23782 ^[A-Z][A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]-[a-z][a-z][a-z][a-z]-[A-Z][A-Z][A-Z][A-Z] A1LJ-0411-proh-ALDLa fałsz
23781 ^[A-Z][A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]-[a-z][a-z][a-z][a-z]-[A-Z][A-Z][A-Z][A-Z] A1LJ-0411-proh-ALDL fałsz
23780 ^[A-Z][A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]-[a-z][a-z][a-z][a-z]-[A-Z][A-Z][A-Z][A-Z] ALJ-0411-proh-ALDL fałsz

« poprzednia 1 216247 16248 16249 16250 16251 16252 16253 16254 16255 16256 1625717202 17203 następna »