Przejdź do głównej treści

Wyrażenia regularne i ich obsługa w PHP oraz JavaScript

Regexp

Wprowadzenie

Wyrażenia regularne (ang. regular expressions, regex) to potężne narzędzie umożliwiające przeszukiwanie, dopasowywanie i manipulację tekstu. Są szeroko stosowane w różnych językach programowania, w tym w PHP i JavaScript. W tym artykule omówimy sposoby obsługi wyrażeń regularnych w obu tych językach oraz przedstawimy przykłady ich zastosowań.

Wyrażenia regularne w PHP

W PHP do obsługi wyrażeń regularnych najczęściej wykorzystuje się funkcje oparte na standardzie PCRE (Perl Compatible Regular Expressions), takie jak:

  • preg_match() — sprawdza, czy dane wyrażenie regularne pasuje do ciągu.
  • preg_match_all() — wyszukuje wszystkie dopasowania.
  • preg_replace() — zamienia dopasowane fragmenty tekstu.

Przykłady wyrażeń regularnych w PHP

1. Proste dopasowanie liczby

$text = "Mam 2 koty.";
if (preg_match('/\d+/', $text, $matches)) {
    echo "Znaleziono liczbę: " . $matches[0];
}

Opis: \d+ dopasowuje jedną lub więcej cyfr.

2. Walidacja adresu e-mail

$email = "example@example.com";
if (preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/', $email)) {
    echo "Poprawny adres e-mail.";
} else {
    echo "Niepoprawny adres e-mail.";
}

Opis: Wyrażenie sprawdza poprawność struktury adresu e-mail.

3. Wyszukiwanie słów zaczynających się od litery "k"

$text = "kot i królik";
preg_match_all('/\bk\w*/i', $text, $matches);
print_r($matches);

Opis: \bk\w* wyszukuje słowa zaczynające się na literę k.

Wyrażenia regularne w JavaScript

W JavaScript wyrażenia regularne są obsługiwane przez obiekt RegExp lub bezpośrednio poprzez literały regex, np. /pattern/flags.

Najważniejsze metody to:

  • test() — sprawdza, czy wyrażenie regularne pasuje do ciągu.
  • exec() — zwraca dopasowanie lub null.
  • Metody łańcuchowe: match(), replace(), search(), split().

Przykłady wyrażeń regularnych w JavaScript

1. Proste sprawdzenie obecności cyfry

const text = "Mam 2 koty.";
const regex = /\d+/;
console.log(regex.test(text)); // true

Opis: Wyrażenie /\d+/ sprawdza, czy tekst zawiera co najmniej jedną cyfrę.

2. Walidacja adresu e-mail

const email = "example@example.com";
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(regex.test(email)); // true

Opis: Podobnie jak w PHP, to wyrażenie sprawdza poprawność adresu e-mail.

3. Wyszukiwanie słów zaczynających się od litery "k"

const text = "kot i królik";
const matches = text.match(/\bk\w*/gi);
console.log(matches); // ["kot", "królik"]

Opis: Wyrażenie \bk\w* wyszukuje słowa zaczynające się od litery k, niezależnie od wielkości liter.

Zaawansowane przykłady wyrażeń regularnych

1. Wyszukiwanie dat w formacie "DD-MM-YYYY"

PHP:

$text = "Dzisiaj jest 01-02-2025.";
if (preg_match('/\b\d{2}-\d{2}-\d{4}\b/', $text, $matches)) {
    echo "Znaleziono datę: " . $matches[0];
}

JavaScript:

const text = "Dzisiaj jest 01-02-2025.";
const regex = /\b\d{2}-\d{2}-\d{4}\b/;
const match = text.match(regex);
if (match) {
    console.log("Znaleziono datę:", match[0]);
}

2. Ekstrakcja hashtagów z tekstu

PHP:

$text = "#programowanie jest super #php #javascript";
preg_match_all('/#\w+/', $text, $matches);
print_r($matches);

JavaScript:

const text = "#programowanie jest super #php #javascript";
const matches = text.match(/#\w+/g);
console.log(matches); // ["#programowanie", "#php", "#javascript"]
Wskazówka

Zachęcam do zapoznania się z moją aplikacją do testowania obsługi wyrażeń regularnych PCRE w PHP.

Podsumowanie

Wyrażenia regularne są niezwykle wszechstronne i przydatne w pracy z tekstem. Zarówno PHP, jak i JavaScript oferują funkcje umożliwiające efektywne korzystanie z tej technologii. Zastosowanie wyrażeń regularnych może znaczenie uprościć rozwiązywanie problemów związanych z walidacją danych, wyszukiwaniem informacji oraz manipulacją tekstu.

1 lutego 2025 13

Kategorie

Ocena wpisu

Dziękujemy!
()

Powiązane wpisy

Dodano 12 listopada 2024
Tag php
Dodano 5 lutego 2025
Tag php

Poprzedni wpis

Używam plików cookie

Moja strona wykorzystuje niezbędne pliki cookie i local storage, które są konieczne do prawidłowego działania strony i świadczenia usług. Możesz dowiedzieć się więcej w mojej polityce prywatności.