Hur matchar MySQL-databasens reguljära uttryck? MySQL regexp som användning

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ägebeskrivning
^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|p3Matchar 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!

🔔 Bli först med att få den värdefulla "ChatGPT Content Marketing AI Tool Usage Guide" i kanalens toppkatalog! 🌟
📚 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!

 

发表 评论

Din e-postadress kommer inte att publiceras. 必填 项 已 用 * 标注

scrolla till toppen