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
Vítejte na telegramovém kanálu blogu Chen Weiliang, kde získáte nejnovější aktualizace!
📚 Tento průvodce má obrovskou hodnotu, 🌟Toto je vzácná příležitost, nenechte si ji ujít! ⏰⌛💨
Sdílejte a lajkujte, pokud se vám líbí!
Vaše sdílení a lajky jsou naší neustálou motivací!