Adresář článků
MySQL databázeJak se regulární výraz shoduje?MySQL použití podobné regulárnímu výrazu
Regulární výrazy MySQL
V předchozích kapitolách jsme se dozvěděli, že MySQL může být JAKO...% pro fuzzy párování.
MySQL také podporuje párování dalších regulárních výrazů.Pro párování regulárních výrazů se v MySQL používá operátor REGEXP.
Pokud znáte PHP nebo Perl, je to docela jednoduché, protože porovnávání regulárních výrazů MySQL je podobné jako u těchto skriptů.
Na operátor REGEXP lze použít běžné vzory v následující tabulce.
| Režim | Popis |
|---|---|
| ^ | Odpovídá začátku vstupního řetězce.^ odpovídá také pozici za '\n' nebo '\r', pokud je nastavena vlastnost Multiline objektu RegExp. |
| $ | Odpovídá konci vstupního řetězce.Pokud je nastavena vlastnost Multiline objektu RegExp, $ také odpovídá pozici před '\n' nebo '\r'. |
| . | Odpovídá libovolnému jednotlivému znaku kromě „\n“.Chcete-li porovnat jakýkoli znak včetně '\n', použijte vzor jako '[.\n]'. |
| [...] | sbírka postav.Odpovídá libovolnému z obsažených znaků.Například „[abc]“ by odpovídalo „plai'a' v n". |
| [^…] | Negativní znaková sada.Odpovídá libovolnému znaku, který není obsažen.Například '[^abc]' by odpovídalo 'p' v "plain". |
| p1|p2|p3 | Odpovídá p1 nebo p2 nebo p3.Například „z|jídlo“ by odpovídalo „z“ nebo „jídlo“. „(z|f)ood“ odpovídá „zood“ nebo „jídlo“. |
| * | Odpovídá předchozímu podvýrazu nula nebo vícekrát.Například zo* by odpovídalo „z“ i „zoo“. * je ekvivalentní {0,}. |
| + | Odpovídá předchozímu podvýrazu jednou nebo vícekrát.Například „zo+“ by odpovídalo „zo“ a „zoo“, ale nikoli „z“. + je ekvivalentní {1,}. |
| {ne} | n je nezáporné celé číslo.Shoduje se přesně nkrát.Například „o{2}“ by neodpovídalo „o“ v „Bob“, ale odpovídalo by oběma o v „jídlo“. |
| {n,m} | Jak m, tak n jsou nezáporná celá čísla, kde n <= m.Shoduje se alespoň nkrát a maximálně mkrát. |
Instance
Po pochopení výše uvedených regulárních požadavků můžeme psát SQL příkazy s regulárními výrazy dle vlastních požadavků.Níže uvedeme několik malých příkladů (název tabulky: person_tbl ), abychom prohloubili naše porozumění:
Najděte všechna data začínající na „st“ v poli názvu:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Najděte všechna data, která končí na „ok“ v poli názvu:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Najděte všechna data obsahující řetězec 'mar' v poli názvu:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Najděte všechna data v poli názvu, která začínají samohláskou nebo končí řetězcem „ok“:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) shared "Jak spárovat regulární výrazy v databázi MySQL? MySQL regexp like use“ vám pomůže.
Vítejte u sdílení odkazu na tento článek:https://www.chenweiliang.com/cwl-492.html
