Artikola Adresaro
MySQL-datumbazoKiel kongruas la regula esprimo?MySQL regexp kiel uzado
MySQL-regulaj esprimoj
En la antaŭaj ĉapitroj ni lernis ke MySQL povas esti ŜATI...% por malklara kongruo.
MySQL ankaŭ subtenas la kongruon de aliaj regulaj esprimoj.La REGEXP operatoro estas uzata en MySQL por regula esprimo kongruo.
Se vi konas PHP aŭ Perl, ĝi estas sufiĉe simpla, ĉar la regula esprima kongruo de MySQL similas al tiuj de ĉi tiuj skriptoj.
La regulaj ŝablonoj en la sekva tabelo povas esti aplikitaj al la REGEXP-funkciigisto.
Modo | Priskribo |
---|---|
^ | Kongruas kun la komenco de la eniga ĉeno.^ ankaŭ kongruas kun la pozicio post '\n' aŭ '\r' se la Plurlinia posedaĵo de la RegExp objekto estas agordita. |
$ | Kongruas kun la fino de la eniga ĉeno.Se la Multiline-posedaĵo de la RegExp-objekto estas agordita, $ ankaŭ kongruas kun la pozicio antaŭ '\n' aŭ '\r'. |
. | Kongruas kun ajna unuopa signo krom "\n".Por kongrui kun ajna signo inkluzive de '\n', uzu ŝablonon kiel '[.\n]'. |
[...] | kolekto de karakteroj.Kongruas kun iu ajn el la enhavitaj signoj.Ekzemple, '[abc]' kongruus kun "plai'a' en n". |
[^…] | Negativa signaro.Kongruas kun ajna signo ne enhavita.Ekzemple, '[^abc]' kongruus kun 'p' en "ebenaĵo". |
p1|p2|p3 | Kongruas kun p1 aŭ p2 aŭ p3.Ekzemple, 'z|manĝaĵo' egalus aŭ "z" aŭ "manĝaĵo". '(z|f)ood' kongruas kun "zood" aŭ "manĝaĵo". |
* | Kongruas kun la antaŭa subesprimo nul aŭ pli da fojoj.Ekzemple, zo* egalus "z" same kiel "zoo". * estas ekvivalenta al {0,}. |
+ | Kongruas kun la antaŭa subesprimo unu aŭ plurajn fojojn.Ekzemple, 'zo+' kongruus kun "zo" kaj "zoo", sed ne "z". + estas ekvivalenta al {1,}. |
{n} | n estas nenegativa entjero.Kongruas precize n fojojn.Ekzemple, 'o{2}' ne kongruus kun la 'o' en "Bob", sed kongruus kun ambaŭ o-oj en "manĝaĵo". |
{n,m} | Ambaŭ m kaj n estas nenegativaj entjeroj, kie n <= m.Kongruas almenaŭ n fojojn kaj maksimume m fojojn. |
ekzemplo
Post kompreni la suprajn regulajn postulojn, ni povas skribi SQL-deklarojn kun regulaj esprimoj laŭ niaj propraj postuloj.Malsupre ni listigos kelkajn malgrandajn ekzemplojn (tabelnomo: person_tbl ) por profundigi nian komprenon:
Trovu ĉiujn datumojn komencantajn per 'st' en la nomkampo:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Trovu ĉiujn datumojn, kiuj finiĝas per 'ok' en la nomkampo:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Trovu ĉiujn datumojn enhavantajn la 'mar'-ĉenon en la nomkampo:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Trovu ĉiujn datumojn en la nomkampo, kiu komenciĝas per vokala signo aŭ finiĝas per la ĉeno 'ok':
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Hope Chen Weiliang Blogo ( https://www.chenweiliang.com/ ) konigis "Kiel kongrui kun MySQL-datumbazaj regulaj esprimoj? MySQL-regu esprimo kiel uzado" helpos vin.
Bonvenon dividi la ligon de ĉi tiu artikolo:https://www.chenweiliang.com/cwl-492.html
Bonvenon al la Telegram-kanalo de la blogo de Chen Weiliang por ricevi la plej novajn ĝisdatigojn!
📚 Ĉi tiu gvidilo enhavas grandegan valoron, 🌟Ĉi tio estas malofta ŝanco, ne maltrafu ĝin! ⏰⌛💨
Kunhavigu kaj ŝatu se vi ŝatas!
Via kundivido kaj ŝatoj estas nia kontinua instigo!