Moderní tvorba webových aplikací

O webu

Znak dolaru v regulárním výrazu

Jak zapsat znak dolaru v regulárním výrazu v PHP.

2 minuty

Znak dolaru ($) má v regulárních výrazech zvláštní význam. Značí konec řetězce nebo konec řádku.

Zapsat na české klávesnici jde klávesovou zkratkou Pravý Alt + ů.

V případě, že je cílem najít v textu něco s dolarem, nabízí se znak $ escapovat (\$).

$vysledek = preg_match("~\$~", "0.50 $"); // true

Výsledek bude dle očekávání kladný. Když znak dolaru v testovaném řetězci nebude, měl by výsledek vrátit false.

$vysledek = preg_match("~\$~", "0.50 €"); // true

Jenže vrací také true. Proč? PHP řetězce v dvojitých uvozovkách zpracovává tak, že se escapování dolaru vypustí. Domnívám se, že je to z toho důvodu, že dolar má v ouvozovkovaném řetězci význam jako označení případné proměnné.

$promenna = "kobercovka";
echo "Vypisuji $promenna"; // Vypisuji kobercovka
echo "Vypisuji \$promenna"; // Vypisuji $promenna

A to escapování se před předání do funkce preg_match ztratí.

Řešení je naštěstí prosté, používat v regulárních výrazech jednoduché uvozovky.

$vysledek = preg_match('~\$~', "0.50 €"); // false
$vysledek = preg_match('~\$~', "0.50 $"); // true

A nebo přidat další zpětné lomítko pro escapování dolaru.

$vysledek = preg_match("~\\$~", "0.50 €"); // false

Odkazy jinam

  • Uvozovky v PHP – rozdíl mezi jednoduchými a dvojitými uvozovkami

Související články

Výpis náhodného textu

Jak na stránce náhodně vypsat obrázek, odkaz, reklamu, text nebo cokoliv jiného.

5 minut

Instalace Apache, PHP a MySQL za 30 vteřin

Jak si ve Windows spustit vlastní Apache, PHP a MySQL na svém PC za půl minuty.

7 minut

MySQL přes PDO

PDO je PHP rozhraní pro pohodlnější práci s SQL databásí. Jaké přináší výhody a jak ho používat.

7 minut

Upload obrovských souborů v JS/PHP

Jak umožnit návštěvníkům nahrát soubory jako videa v řádech MB/GB s progress barem.

7 minut

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků
2013–2025