Artikelkatalog
MySQL-databasHur matchar det reguljära uttrycket?MySQL regexp som användning
MySQL reguljära uttryck
I de tidigare kapitlen har vi lärt oss att MySQL kan vara TYCKA OM...% för suddig matchning.
MySQL stöder även matchning av andra reguljära uttryck. REGEXP-operatorn används i MySQL för matchning av reguljära uttryck.
Om du kan PHP eller Perl är det ganska okomplicerat, eftersom MySQL:s reguljära uttrycksmatchning liknar dessa skript.
De vanliga mönstren i följande tabell kan tillämpas på REGEXP-operatören.
läge | beskrivning |
---|---|
^ | Matchar början av inmatningssträngen.^ matchar också positionen efter '\n' eller '\r' om egenskapen Multiline för RegExp-objektet är inställd. |
$ | Matchar slutet av inmatningssträngen.Om egenskapen Multiline för RegExp-objektet är inställd, matchar $ också positionen före '\n' eller '\r'. |
. | Matchar alla enstaka tecken utom "\n".För att matcha alla tecken inklusive '\n', använd ett mönster som '[.\n]'. |
[...] | samling av karaktärer.Matchar någon av de inneslutna tecknen.Till exempel skulle '[abc]' matcha "plai'a' i n". |
[^...] | Negativ teckenuppsättning.Matchar alla tecken som inte finns.Till exempel skulle '[^abc]' matcha 'p' i "plain". |
p1|p2|p3 | Matchar p1 eller p2 eller p3.Till exempel skulle 'z|mat' matcha antingen "z" eller "mat". '(z|f)ood' matchar "zood" eller "food". |
* | Matchar föregående deluttryck noll eller fler gånger.Till exempel skulle zo* matcha både "z" och "zoo". * motsvarar {0,}. |
+ | Matchar föregående underuttryck en eller flera gånger.Till exempel skulle 'zo+' matcha "zo" och "zoo", men inte "z". + motsvarar {1,}. |
{inte} | n är ett icke-negativt heltal.Matchar exakt n gånger.Till exempel skulle 'o{2}' inte matcha 'o' i "Bob", men skulle matcha båda o i "mat". |
{n,m} | Både m och n är icke-negativa heltal, där n <= m.Matchar minst n gånger och högst m gånger. |
exempel
Efter att ha förstått ovanstående reguljära krav kan vi skriva SQL-satser med reguljära uttryck enligt våra egna krav.Nedan kommer vi att lista några små exempel (tabellnamn: person_tbl ) för att fördjupa vår förståelse:
Hitta all data som börjar med 'st' i namnfältet:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Hitta all data som slutar med 'ok' i namnfältet:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Hitta all data som innehåller "mar"-strängen i namnfältet:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Hitta all data i namnfältet som börjar med ett vokaltecken eller slutar med strängen 'ok':
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ ) delade "Hur matchar man MySQL-databasens reguljära uttryck? MySQL regexp som användning" kommer att hjälpa dig.
Välkommen att dela länken till denna artikel:https://www.chenweiliang.com/cwl-492.html
Välkommen till Telegram-kanalen på Chen Weiliangs blogg för att få de senaste uppdateringarna!
📚 Den här guiden innehåller ett enormt värde, 🌟Detta är ett sällsynt tillfälle, missa inte det! ⏰⌛💨
Dela och gilla om du vill!
Dina delning och likes är vår ständiga motivation!