-
Dosbarth Regex Yn C# 6 Defnyddir dosbarth Regex yn C# i gyflawni gweithrediadau regex. Mae'n cynnwys nifer o wahanol ddulliau y gellir eu defnyddio i gyflawni gweithrediadau gwahanol yn ymwneud â regex. Gellir ei ddefnyddio i ddosrannu testun mawr i ddod o hyd i ddilyniant nodau penodol trwy ddefnyddio dulliau y gellir eu defnyddio i berfformio cyfatebiad, i disodli neu gellir ei ddefnyddio i hollti'r dilyniant nodau. Mae'r dosbarth regex yn bresennol o fewn y gofod enw; System.Text.RegularExpression. Mae'r dosbarth yn derbyn llinyn ar ffurf dilyniant nod fel paramedr. C# Regex Methods ein bod wedi creu “^Super” yn gallu cyfateb i holl werthoedd super, hyd yn oed superman neu oruwchnaturiol ond nid dim ond y gair “Super” sydd ei angen arnom. Mae hyn yn golygu y dylai fod gofod gwyn ar ôl y gair i nodi diwedd y gair a dechrau gair arall. I wneud hynny byddwn yn ychwanegu symbol “\s” at y patrwm a thrwy hynny yn gwneud ein patrwm terfynol fel ^Super\s Senario 3: Defnyddiwch fynegiad rheolaidd i ddod o hyd i ffeil ddilys enwau gydag estyniad math o ffeil delwedd. Senario amser real bwysig arall y mae datblygwyr yn aml yn ei hwynebu yw dilysu mathau o ffeiliau. Gadewch i ni ddweud bod gennym ni fotwm uwchlwytho yn yr UI, na all ond derbyn estyniadau math ffeil delwedd. Mae angen i ni ddilysu ffeil uwchlwytho'r defnyddiwr a rhoi gwybod iddo rhag ofn iddo uwchlwytho'r fformat ffeil anghywir. Gellir cyflawni hyn yn hawdd trwy ddefnyddio mynegiad Rheolaidd. Isod mae rhaglen syml i wirio hyn. public static void Main(string[] args) gif)$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("abc.jpg")); Console.WriteLine(reg.IsMatch("ab_c.gif")); Console.WriteLine(reg.IsMatch("abc123.png")); //When pattern doesnt match Console.WriteLine(reg.IsMatch(".jpg")); Console.WriteLine(reg.IsMatch("ask.jpegj")); Allbwn Gwir Gwir Gwir Anghywir Anghywir Esboniad Yma mae angen i ni baru enw ffeil. Mae enw ffeil dilys yn cynnwys tair rhan ( enw'r ffeil + .+ estyniad ffeil ). Mae angen i ni greu mynegiant rheolaidd i gyd-fynd â'r tair rhan. Gadewch i ni ddechrau trwy gyfateb y rhan gyntaf h.y. enw'r ffeil. Gall enw ffeil gynnwys nodau alffaniwmerig ac arbennig. Fel y trafodwyd yn gynharach y symbol i ddynodi hynny yw “\w”. Hefyd, gall enw'r ffeil fod o un neu fwyac yna dot (.) yna enw'r wefan ar ôl hynny dot (.) ac ar y diwedd estyniad parth. Felly, yn debyg i'r senario blaenorol byddwn yn ceisio ei baru fesul rhan . Dechreuwn yn gyntaf trwy baru “www.” Rhan. Felly rydyn ni'n dechrau gyda'r symbol cychwynnol, yna fel “www.” Mae'n rhywbeth sefydlog, felly rydyn ni'n defnyddio'r symbol cychwyn ac yna'r union eiriau i gyd-fynd. “^www.” Yna byddwn yn dechrau gweithio ar yr ail ran. Gall ail ran y cyfeiriad gwe fod yn unrhyw enw alffaniwmerig. Felly, yma byddwn yn defnyddio cromfachau sgwâr sy'n bresennol yn y dosbarth cymeriad i ddiffinio'r amrediad y mae angen ei gyfateb. Ar ôl ychwanegu'r ail ran gyda'r ail ran bydd yn rhoi i ni. “^www.[a-zA-Z0-9]{3,20}” Yma rydym hefyd wedi ychwanegu braces cyrliog i ddiffinio hyd nod lleiaf ac uchaf ar gyfer enw'r wefan. Rydym wedi rhoi lleiafswm o 3 ac uchafswm o 20. Gallwch roi unrhyw isafswm neu uchafswm hyd yr ydych ei eisiau. Nawr, ar ôl ymdrin â rhan gyntaf ac ail ran y cyfeiriad gwe, dim ond yr olaf sydd gennym ar ôl rhan, h.y. estyniad parth. Mae'n eithaf tebyg i'r hyn a wnaethom yn y senario diwethaf, byddwn yn cydweddu'n uniongyrchol â'r estyniadau parth trwy ddefnyddio OR ac yn amgáu pob estyniad parth dilys y tu mewn i'r cromfach gylchol. Felly os byddwn yn adio'r rhain i gyd at ei gilydd bydd gennym mynegiad rheolaidd cyflawn i gyd-fynd ag unrhyw gyfeiriad gwe dilys. www.[a-zA-Z0-9]{3,20}.(com|in|org|co\.in|net|dev)$ Senario 5: Defnyddiwch fynegiad rheolaidd i ddilysu afformat id e-bost Gadewch i ni dybio bod gennym ffurflen mewngofnodi ar ein tudalen we sy'n gofyn i'r defnyddwyr nodi eu cyfeiriad e-bost. Am resymau amlwg, ni fyddwn am i'n ffurflen fynd ymlaen ymhellach gyda chyfeiriadau e-bost annilys. I ddilysu a yw'r cyfeiriad e-bost a roddwyd gan y defnyddiwr yn gywir ai peidio, gallwn ddefnyddio mynegiant rheolaidd. Isod mae rhaglen syml i ddilysu cyfeiriad e-bost. public static void Main(string[] args) { string patternText = @"^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12}.(com|org|co\.in|net)"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("[email protected]")); Console.WriteLine(reg.IsMatch("[email protected]")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("[email protected]")); } Allbwn Gwir Gwir Anghywir Esboniad A mae cyfeiriad e-bost dilys yn cynnwys yr wyddor, rhifolion, a rhai nodau arbennig fel dot (.), dash (-), a thanlinellu (_) ac yna'r symbol “@” sydd wedyn yn cael ei ddilyn gan yr enw parth ac estyniad parth. Felly, gallwn rannu'r cyfeiriad e-bost yn bedair rhan h.y. dynodwr e-bost, symbol “@”, yr enw parth, a'r olaf yw'r estyniad parth. Gadewch i ni ddechrau trwy ysgrifennu mynegiad rheolaidd ar gyfer y rhan gyntaf. Gall fod yn alffa-rifol gyda rhai nodau arbennig. Tybiwch fod gennym faint mynegiant sy'n amrywio o 5 i 25 nod. Yn debyg i sut y gwnaethom ei ysgrifennu'n gynharach (yn y senario e-bost), gallwn ddod o hyd i'r ymadrodd canlynol. ^[a-zA-Z0-9\._-]{5,25} Nawr, gan symud i'r ail ran. Mae’n gymharol hawdd gan mai dim ond un symbol sy’n rhaid i ni ei gyfateb h.y. “@”. Mae ei ychwanegu at y mynegiad uchod yn rhoi i ni. ^[a-zA-Z0-9\._-]{5,25}.@ Wrth symud i'r drydedd ran h.y. bydd yr enw parth bob amser yn gyfres o isparu geiriau, yr wyddor, cyfeiriadau gwefannau, rhifau adnabod e-bost, a hyd yn oed mathau o ffeiliau ac estyniadau. Mae'r senarios hyn yn eithaf defnyddiol wrth ddilysu mewnbynnau defnyddwyr mewn amser real heb ysgrifennu nifer o linellau o god ac felly'n helpu i arbed amser ac lleihau cymhlethdod. Mae'r enghreifftiau hyn wedi cael eu defnyddio i arwain y defnyddiwr i greu eu set eu hunain o fynegiadau rheolaidd a thrwy hynny eu helpu i drin sawl senario gwahanol arall. Gall Regex fod yn syml fel defnyddio'r wyddor neu rifolion i gyd-fynd â chyfres benodol o nodau neu gymhleth drwy ddefnyddio cyfuniad o nodau arbennig, meintiolwyr, dosbarthiadau nodau, ac ati i ddilysu fformatau cymhleth neu i chwilio am batrwm penodol yn y gyfres nodau. Yn gryno, mae mynegiant rheolaidd yn dipyn o offeryn pwerus ar gyfer rhaglennydd ac yn helpu i leihau faint o god sydd ei angen i gyflawni mewn tasg paru data neu ddilysu. IsMatch Y dull symlaf a mwyaf defnyddiol yn y dosbarth Regex yw'r dull IsMatch. Mae gan y dull hwn orlwythiadau gwahanol ar gyfer perfformio paru nodau yn seiliedig ar baramedrau gwahanol. Yr un symlaf yw Disodli(Testun llinyn, amnewid LlinynnolText) Mae'r dull disodli yn derbyn dau paramedrau ac yn dychwelyd gwerth llinynnol. Y paramedr cyntaf yw'r dilyniant nod neu'r regex yr ydych am ei ddefnyddio ar gyfer paru a'r ail un yw disodli'r regex. Mae'r dull yn gweithio drwy ddod o hyd i gyfatebiad i'r testun a roddwyd ac yna'n disodli hwnnw gyda'r testun newydd a ddarperir gan y defnyddiwr. Llofnod y dull yw llinyn cyhoeddus Amnewid(testun llinyn, amnewid llinynTestun) Llinyn cyhoeddus[] Hollti(testun llinyn) Y dull hollti o'r dosbarth regex yn derbyn mewnbwn llinyn fel paramedr ac yn dychwelyd arae sy'n cynnwys is-linynnau. Y paramedr a basiwyd yn y dull yw'r llinyn sydd angen ei hollti. Mae'r dull yn dod o hyd i'r patrwm mewnbwn cyfatebol yn y llinyn ac unwaith mae'n adnabod unrhyw batrwm cyfatebol, mae'n hollti'r llinyn yn y lle hwnnw yn is-linyn llai gyda pob patrwm cyfatebol yn bwynt torri. Mae'r dull wedyn yn dychwelyd arae sy'n cynnwys yr holl is-linynnau. Defnydd Dulliau Regex C# Gadewch i ni edrych ar y defnydd o'r dulliau hyn drwy ysgrifennu rhaglen syml. public static void Main(string[] args) { string patternText = "Hello"; Regex reg = new Regex(patternText); //IsMatch(string input) Console.WriteLine(reg.IsMatch("Hello World")); //IsMatch(string input, int index) Console.WriteLine(reg.IsMatch("Hello", 0)); //IsMatch(string input, string pattern) Console.WriteLine(Regex.IsMatch("Hello World", patternText)); //Replace(string input, string replacement) Console.WriteLine(reg.Replace("Hello World", "Replace")); //Split(string input, string pattern) string[] arr = Regex.Split("Hello_World_Today", "_"); foreach(string subStr in arr) { Console.WriteLine("{0}", subStr); } } Allbwn yr uchodrhaglen Gwir Gwir Gwir Amnewid Byd Helo Byd Heddiw Yr esboniad am y cod uchod: Ar ddechrau'r rhaglen, rydym wedi creu gwrthrych ac ar gyfer y patrwm y byddwn yn ei ddefnyddio ar gyfer y paru cod yn y mewnbwn llinyn dilynol, rydym wedi defnyddio fformatio testun i gadw pethau'n syml yn y dechrau ond os ydych yn gyfforddus gallwch ddechrau defnyddio patrymau mynegiant rheolaidd. (Byddwn yn trafod patrwm mynegiant rheolaidd yn fanwl wrth i ni symud ymlaen yn y tiwtorial hwn) Yna, byddwn yn defnyddio llinyn cyfatebol i fewnbynnu'r ffactor yr ydym wedi'i ddatgan fel y gwrthrych penodedig gyda'r llinyn mewnbwn ac os yw'n cyfateb yna bydd yn dychwelyd i ddychwelyd ffug. Y dull nesaf a ddefnyddiwyd gennym yw IsMethod(mewnbwn llinyn, mynegai int). Mae'r dull hwn yn derbyn dau baramedr, ac yma rydym yn darparu llinyn mewnbwn a'r mynegai lle mae'n rhaid i'r gêm gychwyn. Er enghraifft, yma roeddem am gychwyn y paru o ddechrau'r llinyn mewnbwn. Yna dangoswyd y defnydd o IsMatch (mewnbwn llinyn, patrwm llinynnol). Yma fe wnaethom ddarparu'r llinyn mewnbwn yna roeddem am ddarganfod a yw'r testun patrwm yn bresennol yn y mewnbwn ai peidio. Os yw'n bresennol yna bydd yn dychwelyd yn wir (fel yn ein hachos ni) fel arall bydd yn dychwelyd ffug. Dull arall a drafodwyd gennym yn cael ei ddisodli. Mae'r dull hwn yn eithaf defnyddiol mewn rhaglenni lle rydych chi am wneud newidiadau i'r data mewnbwnneu newid fformat y data presennol. Yma rydym yn darparu dau baramedr, yr un cyntaf yw'r llinyn mewnbwn a'r ail yw'r llinyn y gellir ei ddefnyddio i ddisodli'r llinyn blaenorol. Mae'r dull hwn hefyd yn defnyddio'r patrwm a ddiffiniwyd yn y gwrthrych regex a ddiffiniwyd gennym yn gynharach. Dull pwysig arall a ddefnyddiwyd gennym yw hollti. Defnyddir y dull hwn i rannu'r llinyn a roddir yn seiliedig ar rai patrymau cylchol. Yma, rydym wedi darparu llinyn “Hello_World_Today”. Dewch i ni ddweud ein bod ni eisiau tynnu'r tanlinelliad o'r llinyn a roddwyd a chael yr is-linynnau. Ar gyfer hyn, rydyn ni'n nodi'r paramedr mewnbwn ac yna rydyn ni'n rhoi'r patrwm y mae angen i ni ei ddefnyddio fel pwynt hollti. Mae'r dull yn dychwelyd arae a gallwn ddefnyddio dolen syml fel foreach i adalw'r holl linynnau. Cystrawen Mynegiant Rheolaidd Mae yna nifer o gystrawenau gwahanol megis nodau arbennig, meintolyddion, dosbarthiadau nodau, ac ati y gellir eu defnyddio i gyd-fynd â phatrwm penodol o fewnbwn penodol. Yn y rhan hon o'r tiwtorial, byddwn yn plymio'n ddwfn i'r gystrawen a gynigir gan regex a byddwn yn ceisio datrys rhai senarios bywyd go iawn eu defnyddio. Cyn i ni symud ymlaen, gwnewch yn siŵr eich bod wedi cael y syniad sylfaenol o regex a'r gwahanol ddulliau sydd ar gael o fewn y dosbarth regex. Cymeriadau Arbennig Defnyddir nodau arbennig mewn regex i aseinio sawl ystyr gwahanol i batrwm. Edrychwn yn awr arrhai o'r nodau arbennig a ddefnyddir yn eang a'u hystyr yn Regex.3 Nodiadau arbennig Ystyr ^ Dyma un o'r gystrawen a ddefnyddir amlaf. Mae'n dynodi'r dechrau, y gair neu'r patrwm ar ôl i hyn ddechrau paru o ddechrau'r testun mewnbwn. $ Defnyddir yr arwydd hwn ar gyfer paru geiriau o'r diwedd o'r llinyn. Bydd geiriau/patrymau a ddynodir cyn y symbol hwn yn cyfateb i'r geiriau sy'n bresennol ar ddiwedd y llinyn. . (dot) Defnyddir dot i gydweddu nod unigol yn y llinyn a roddwyd sy'n digwydd unwaith. \n Defnyddir hwn ar gyfer un newydd llinell. \d a \D Defnyddir llythrennau bach 'd' i gyd-fynd â nod digid a defnyddir priflythrennau 'D' i gydweddu â nod di-ddigid nodau. \s a \S Defnyddir 's' llythrennau bach i gyd-fynd â bylchau gwyn a defnyddir priflythrennau 'S' i gyd-fynd â gofod nad yw'n wyn . \w a \W Defnyddir 'w' mewn llythrennau bach i gyd-fynd â nodau alffaniwmerig/tansgorio a defnyddir 'W' mewn priflythrennau i gyd-fynd â di-air nodau. Cystrawen Meintiolwr Defnyddir cystrawen meintiolwr i gyfrif neu feintioli'r meini prawf paru. Er enghraifft, os ydych am wirio a yw llinyn penodol yn cynnwys wyddor unwaith neu fwy. Gadewch i ni gael golwg ar rai o'r meintolyddion a ddefnyddir yn gyffredin mewn mynegiant Rheolaidd. > MeintolwrCystrawen Ystyr * Defnyddir y symbol hwn i gyd-fynd â'r nod blaenorol. 19>+ Defnyddir y symbol hwn i gyd-fynd ag un nod neu fwy mewn rhes. {n} Y digid rhifol y tu mewn i'r cyrliog defnyddir bresys i gyd-fynd â rhif y nod blaenorol a ddiffinnir gan rifol tu mewn braces cyrliog. {n,} Defnyddir y rhifolyn tu mewn braces cyrliog a'r symbol hwn i wneud yn siŵr ei fod yn cyfateb o leiaf n (h.y. gwerth rhifol y tu mewn i'r braces). { n, m} Defnyddir y symbol hwn ar gyfer paru o'r nod blaenorol o n nifer o weithiau i m nifer o weithiau. ? Mae'r symbol hwn yn gwneud i nodau blaenorol gyfateb yn ddewisol. Dosbarth Nodau Mae'r dosbarth nodau hefyd yn cael ei alw'n setiau nodau, ac mae hwn yn cael ei ddefnyddio i ddweud wrth y peiriant regex i chwilio am gydweddiad sengl o sawl nod. Bydd dosbarth nod yn cyfateb i un nod yn unig ac nid yw trefn y nodau sydd wedi'u hamgáu y tu mewn i'r set nodau o bwys. [ range ] Defnyddir y symbol cromfach sgwâr i gyfateb ar gyfer ystod o nodau. Er enghraifft, gallwn ei ddefnyddio i ddiffinio unrhyw gymeriad mewn ystod o'r wyddor “a” i “z” trwy amgáu'r amrediad y tu mewn i'r braced fel [a-z] Neu, gallwn hefyd baru â rhifol “1” i “ 9” trwy ddynodimynegiadau gan ddefnyddio rhai enghreifftiau amser real. Senario 1: Dilyswch a yw'r llinyn mewnbwn yn cynnwys nodau wyddor 6 digid cas-ansensitif. Senario mwyaf cyffredin ar gyfer mynegiant rheolaidd yw canfod a pharu gair penodol. Er enghraifft, gadewch i ni ddweud fy mod eisiau llinyn wyddor ar hap gan y defnyddiwr a dylai'r mewnbwn hwnnw fod yn union 6 digid o hyd. I ddilysu y gallwn ddefnyddio mynegiant rheolaidd syml. Gadewch i ni ysgrifennu rhaglen i ddeall y mynegiant rheolaidd, ysgrifennu a defnyddio mewn ffordd well. public static void Main(string[] args) { string patternText = @"^[a-zA-Z]{6}$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Helios")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Helo")); } Allbwn Gwir Anghywir 0 Esboniad Yn yr enghraifft hon, rydym yn ceisio dilysu llinyn mewnbwn, i wirio a yw'n cynnwys nodau wyddor chwe digid. Gall y nodau fod mewn priflythrennau a llythrennau bach, felly mae angen i ni ystyried hynny hefyd. Felly, yma fe wnaethom ddiffinio patrwm mynegiant rheolaidd mewn “patternText” newidyn ac yna ei drosglwyddo i'r gwrthrych regex . Nawr, mae'r llinellau cod nesaf yn eithaf syml, fe wnaethon ni ddefnyddio'r dull IsMatch i gymharu'r mynegiant rheolaidd a'r llinyn mewnbwn. Gadewch i ni nawr edrych ar y mynegiant rheolaidd rydyn ni wedi'i ddyfeisio. Mae'r mynegiad (^[a-zA-Z]{6}$) yn cynnwys 4 rhan wahanol. “^”, “[a-zA-Z]”, “{6}” a “$”. Mae'r ail ran yn dynodi'r nodau sy'n cyfateb, a ddefnyddir i berfformio paru mynegiant, “a-z” ar gyfer llythrennau bach ac “A-Z” ar gyfer priflythrennau. Y cyntafnod rhan “^” yn sicrhau bod y llinyn yn dechrau gyda phatrwm a ddiffinnir yn yr ail ran h.y. yr wyddor mewn priflythrennau a llythrennau bach. Mae'r braces cyrliog yn y drydedd ran yn pennu nifer y nodau yn y llinyn y gellir eu hadnabod gan y patrwm diffiniedig h.y. 6 yn yr achos hwn a'r symbol “$” gwnewch yn siŵr ei fod yn gorffen gyda'r patrwm a ddiffinnir yn yr ail ran. ^[a-zA-Z]{6}$ Senario 2: Defnyddiwch fynegiad rheolaidd i ddilysu bod gair sy’n dechrau gyda “Super” ac sydd â gofod gwyn ar ôl hynny h.y. i ddilysu a yw “Super” yn bresennol ar ddechrau brawddeg. 3 Gadewch i ni dybio ein bod yn darllen rhywfaint o fewnbwn defnyddiwr a bod angen sicrhau bod y defnyddiwr bob amser yn dechrau ei frawddeg gyda gair, rhif neu wyddor arbennig. Gellir cyflawni hyn yn eithaf hawdd trwy ddefnyddio mynegiad rheolaidd syml. Gadewch i ni edrych ar raglen sampl ac yna trafod yn fanwl sut i ysgrifennu'r ymadrodd hwn. public static void Main(string[] args) { string patternText = @"^Super\s"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Super man")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Superhero")); } Allbwn2 Gwir Anghywir Eglurhad Yn yr enghraifft hon hefyd, fe wnaethom ddefnyddio gosodiad cod tebyg i'r hyn a wnaethom yn yr un cyntaf. Mae'r patrwm mynegiant rheolaidd yn y senario hwn yn gofyn am baru gyda chyfuniad o eiriau neu frawddegau sy'n dechrau gyda “Super”. ^Super Felly, gan ein bod ni eisiau paru o ddechrau'r gair cyfres, byddwn yn dechrau trwy roi'r symbol “^”, yna byddwn yn rhoi'r patrwm yr ydym am ei gydweddu, yn yr achos hwn, “Super”. Nawr y patrwm[1-9] [^ range] Mae hwn yn dynodi dosbarth nodau negyddol. Mae'n cael ei ddefnyddio i gydweddu ag unrhyw beth, nid yn yr amrediad a ddynodir o fewn y cromfachau. \ Defnyddir hwn i baru nodau arbennig a all fod â'u symbolau regex eu hunain. Defnyddir y slaes i gyfateb y nodau arbennig yn eu ffurf llythrennol. Grwpio Gellir defnyddio cromfachau crwn neu gromfachau i grwpio rhan o'r rheolaidd mynegiant gyda'i gilydd. Mae hyn yn caniatáu i'r defnyddiwr naill ai ychwanegu meintiolydd gyda'r mynegiad. Grouping Ystyr ( grŵp mynegiant ) Defnyddir y cromfachau crynion ar gyfer grwpio mynegiad. cymeriadau felly bydd yn defnyddio'r symbol "+". Cyfunwch nhw a chawn y symbol ar gyfer y rhan gyntaf. (\w+) Gwahanodd braced hwn yn rhannau. Y rhan nesaf yw'r symbol dot. Gan fod gan y symbol dot ei ystyr mewn regex, byddwn yn defnyddio slaes o'i flaen i roi ystyr llythrennol iddo. Cyfunwch y ddau ac mae gennym y ddwy ran gyntaf o'r regex dan sylw. (\w+)\. Nawr, ar gyfer y drydedd ran a'r rhan olaf, gallwn ddiffinio'n uniongyrchol yr estyniadau ffeil gofynnol wedi'u gwahanu gan “llythrennau bach yn nhrefn yr wyddor. Os dymunwch gallwch hefyd gynnwys nodau rhifol neu briflythrennau yn nhrefn yr wyddor ond ar gyfer y senario hwn, byddwn yn mynd gyda'r wyddor mewn llythrennau bach. Os byddwn yn ychwanegu'r mynegiad ar gyfer yr wyddor mewn llythrennau bach gyda hyd yn amrywio o 2 i 12 nod, yna bydd gennym y mynegiad canlynol. ^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12} Nawr, rydym yn unig ar ôl gyda'r mynegiad ar gyfer estyniad parth, yn debyg i'r pedwerydd senario, byddwn yn ymdrin â rhai estyniadau parth penodol. Os ydych chi eisiau gallwch chi ychwanegu mwy ohonyn nhw trwy eu hamgáu y tu mewn i fraced crwn a'u gwahanu gyda “
Mae'r tiwtorial C# Regex hwn yn esbonio beth yw mynegiant rheolaidd yn C#, ei gystrawen, dulliau dosbarth Regex, a sut i ddefnyddio'r dulliau hyn gyda chymorth enghreifftiau:
Y mynegiant rheolaidd yn y C# yn cael ei ddefnyddio ar gyfer paru patrwm nod penodol. Defnyddir mynegiadau rheolaidd pryd bynnag y mae angen i ddefnyddiwr ddod o hyd i ryw batrwm sy'n ailadrodd neu wneud dilysiad data neu hyd yn oed ar gyfer gwirio fformatio data.
Defnyddir RegEx i ddarganfod a yw llinyn yn cynnwys neu'n cyfateb i batrwm nodau penodol. Dilyniant nodau sy'n dynodi patrwm yw regex yn bennaf.
Gall patrwm fod yn unrhyw beth sy'n amrywio o rifau, nodau, neu gyfuniad o'r cyfan. Defnyddir Regex yn eang ar gyfer dilysu. Dosrannu neu baru llinynnau, er enghraifft, darganfod a yw llinyn yn cyfateb i fformat arian cyfred, rhif ffôn, neu fformat dyddiad.
Dosbarth Regex Yn C# 6
Defnyddir dosbarth Regex yn C# i gyflawni gweithrediadau regex. Mae'n cynnwys nifer o wahanol ddulliau y gellir eu defnyddio i gyflawni gweithrediadau gwahanol yn ymwneud â regex.
Gellir ei ddefnyddio i ddosrannu testun mawr i ddod o hyd i ddilyniant nodau penodol trwy ddefnyddio dulliau y gellir eu defnyddio i berfformio cyfatebiad, i disodli neu gellir ei ddefnyddio i hollti'r dilyniant nodau.
Mae'r dosbarth regex yn bresennol o fewn y gofod enw; System.Text.RegularExpression. Mae'r dosbarth yn derbyn llinyn ar ffurf dilyniant nod fel paramedr.
C# Regex Methods
ein bod wedi creu “^Super” yn gallu cyfateb i holl werthoedd super, hyd yn oed superman neu oruwchnaturiol ond nid dim ond y gair “Super” sydd ei angen arnom.
Mae hyn yn golygu y dylai fod gofod gwyn ar ôl y gair i nodi diwedd y gair a dechrau gair arall. I wneud hynny byddwn yn ychwanegu symbol “\s” at y patrwm a thrwy hynny yn gwneud ein patrwm terfynol fel
^Super\s
Senario 3: Defnyddiwch fynegiad rheolaidd i ddod o hyd i ffeil ddilys enwau gydag estyniad math o ffeil delwedd.
Senario amser real bwysig arall y mae datblygwyr yn aml yn ei hwynebu yw dilysu mathau o ffeiliau. Gadewch i ni ddweud bod gennym ni fotwm uwchlwytho yn yr UI, na all ond derbyn estyniadau math ffeil delwedd.
Mae angen i ni ddilysu ffeil uwchlwytho'r defnyddiwr a rhoi gwybod iddo rhag ofn iddo uwchlwytho'r fformat ffeil anghywir. Gellir cyflawni hyn yn hawdd trwy ddefnyddio mynegiad Rheolaidd.
Isod mae rhaglen syml i wirio hyn.
public static void Main(string[] args) gif)$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("abc.jpg")); Console.WriteLine(reg.IsMatch("ab_c.gif")); Console.WriteLine(reg.IsMatch("abc123.png")); //When pattern doesnt match Console.WriteLine(reg.IsMatch(".jpg")); Console.WriteLine(reg.IsMatch("ask.jpegj"));
Allbwn
Gwir
Gwir
Gwir
Anghywir
Anghywir
Esboniad
Yma mae angen i ni baru enw ffeil. Mae enw ffeil dilys yn cynnwys tair rhan ( enw'r ffeil + .+ estyniad ffeil ). Mae angen i ni greu mynegiant rheolaidd i gyd-fynd â'r tair rhan. Gadewch i ni ddechrau trwy gyfateb y rhan gyntaf h.y. enw'r ffeil. Gall enw ffeil gynnwys nodau alffaniwmerig ac arbennig.
Fel y trafodwyd yn gynharach y symbol i ddynodi hynny yw “\w”. Hefyd, gall enw'r ffeil fod o un neu fwyac yna dot (.) yna enw'r wefan ar ôl hynny dot (.) ac ar y diwedd estyniad parth.
Felly, yn debyg i'r senario blaenorol byddwn yn ceisio ei baru fesul rhan . Dechreuwn yn gyntaf trwy baru “www.” Rhan. Felly rydyn ni'n dechrau gyda'r symbol cychwynnol, yna fel “www.” Mae'n rhywbeth sefydlog, felly rydyn ni'n defnyddio'r symbol cychwyn ac yna'r union eiriau i gyd-fynd.
“^www.”
Yna byddwn yn dechrau gweithio ar yr ail ran. Gall ail ran y cyfeiriad gwe fod yn unrhyw enw alffaniwmerig. Felly, yma byddwn yn defnyddio cromfachau sgwâr sy'n bresennol yn y dosbarth cymeriad i ddiffinio'r amrediad y mae angen ei gyfateb. Ar ôl ychwanegu'r ail ran gyda'r ail ran bydd yn rhoi i ni.
“^www.[a-zA-Z0-9]{3,20}”
Yma rydym hefyd wedi ychwanegu braces cyrliog i ddiffinio hyd nod lleiaf ac uchaf ar gyfer enw'r wefan. Rydym wedi rhoi lleiafswm o 3 ac uchafswm o 20. Gallwch roi unrhyw isafswm neu uchafswm hyd yr ydych ei eisiau.
Nawr, ar ôl ymdrin â rhan gyntaf ac ail ran y cyfeiriad gwe, dim ond yr olaf sydd gennym ar ôl rhan, h.y. estyniad parth. Mae'n eithaf tebyg i'r hyn a wnaethom yn y senario diwethaf, byddwn yn cydweddu'n uniongyrchol â'r estyniadau parth trwy ddefnyddio OR ac yn amgáu pob estyniad parth dilys y tu mewn i'r cromfach gylchol.
Felly os byddwn yn adio'r rhain i gyd at ei gilydd bydd gennym mynegiad rheolaidd cyflawn i gyd-fynd ag unrhyw gyfeiriad gwe dilys.
www.[a-zA-Z0-9]{3,20}.(com|in|org|co\.in|net|dev)$
Senario 5: Defnyddiwch fynegiad rheolaidd i ddilysu afformat id e-bost
Gadewch i ni dybio bod gennym ffurflen mewngofnodi ar ein tudalen we sy'n gofyn i'r defnyddwyr nodi eu cyfeiriad e-bost. Am resymau amlwg, ni fyddwn am i'n ffurflen fynd ymlaen ymhellach gyda chyfeiriadau e-bost annilys. I ddilysu a yw'r cyfeiriad e-bost a roddwyd gan y defnyddiwr yn gywir ai peidio, gallwn ddefnyddio mynegiant rheolaidd.
Isod mae rhaglen syml i ddilysu cyfeiriad e-bost.
public static void Main(string[] args) { string patternText = @"^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12}.(com|org|co\.in|net)"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("[email protected]")); Console.WriteLine(reg.IsMatch("[email protected]")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("[email protected]")); }
Allbwn
Gwir
Gwir
Anghywir
Esboniad
A mae cyfeiriad e-bost dilys yn cynnwys yr wyddor, rhifolion, a rhai nodau arbennig fel dot (.), dash (-), a thanlinellu (_) ac yna'r symbol “@” sydd wedyn yn cael ei ddilyn gan yr enw parth ac estyniad parth.
Felly, gallwn rannu'r cyfeiriad e-bost yn bedair rhan h.y. dynodwr e-bost, symbol “@”, yr enw parth, a'r olaf yw'r estyniad parth.
Gadewch i ni ddechrau trwy ysgrifennu mynegiad rheolaidd ar gyfer y rhan gyntaf. Gall fod yn alffa-rifol gyda rhai nodau arbennig. Tybiwch fod gennym faint mynegiant sy'n amrywio o 5 i 25 nod. Yn debyg i sut y gwnaethom ei ysgrifennu'n gynharach (yn y senario e-bost), gallwn ddod o hyd i'r ymadrodd canlynol.
^[a-zA-Z0-9\._-]{5,25}
Nawr, gan symud i'r ail ran. Mae’n gymharol hawdd gan mai dim ond un symbol sy’n rhaid i ni ei gyfateb h.y. “@”. Mae ei ychwanegu at y mynegiad uchod yn rhoi i ni.
^[a-zA-Z0-9\._-]{5,25}.@
Wrth symud i'r drydedd ran h.y. bydd yr enw parth bob amser yn gyfres o isparu geiriau, yr wyddor, cyfeiriadau gwefannau, rhifau adnabod e-bost, a hyd yn oed mathau o ffeiliau ac estyniadau.
Mae'r senarios hyn yn eithaf defnyddiol wrth ddilysu mewnbynnau defnyddwyr mewn amser real heb ysgrifennu nifer o linellau o god ac felly'n helpu i arbed amser ac lleihau cymhlethdod. Mae'r enghreifftiau hyn wedi cael eu defnyddio i arwain y defnyddiwr i greu eu set eu hunain o fynegiadau rheolaidd a thrwy hynny eu helpu i drin sawl senario gwahanol arall.
Gall Regex fod yn syml fel defnyddio'r wyddor neu rifolion i gyd-fynd â chyfres benodol o nodau neu gymhleth drwy ddefnyddio cyfuniad o nodau arbennig, meintiolwyr, dosbarthiadau nodau, ac ati i ddilysu fformatau cymhleth neu i chwilio am batrwm penodol yn y gyfres nodau.
Yn gryno, mae mynegiant rheolaidd yn dipyn o offeryn pwerus ar gyfer rhaglennydd ac yn helpu i leihau faint o god sydd ei angen i gyflawni mewn tasg paru data neu ddilysu.
IsMatch
Y dull symlaf a mwyaf defnyddiol yn y dosbarth Regex yw'r dull IsMatch. Mae gan y dull hwn orlwythiadau gwahanol ar gyfer perfformio paru nodau yn seiliedig ar baramedrau gwahanol.
Yr un symlaf yw
Disodli(Testun llinyn, amnewid LlinynnolText)
Mae'r dull disodli yn derbyn dau paramedrau ac yn dychwelyd gwerth llinynnol. Y paramedr cyntaf yw'r dilyniant nod neu'r regex yr ydych am ei ddefnyddio ar gyfer paru a'r ail un yw disodli'r regex.
Mae'r dull yn gweithio drwy ddod o hyd i gyfatebiad i'r testun a roddwyd ac yna'n disodli hwnnw gyda'r testun newydd a ddarperir gan y defnyddiwr. Llofnod y dull yw llinyn cyhoeddus Amnewid(testun llinyn, amnewid llinynTestun)
Llinyn cyhoeddus[] Hollti(testun llinyn)
Y dull hollti o'r dosbarth regex yn derbyn mewnbwn llinyn fel paramedr ac yn dychwelyd arae sy'n cynnwys is-linynnau. Y paramedr a basiwyd yn y dull yw'r llinyn sydd angen ei hollti.
Mae'r dull yn dod o hyd i'r patrwm mewnbwn cyfatebol yn y llinyn ac unwaith mae'n adnabod unrhyw batrwm cyfatebol, mae'n hollti'r llinyn yn y lle hwnnw yn is-linyn llai gyda pob patrwm cyfatebol yn bwynt torri. Mae'r dull wedyn yn dychwelyd arae sy'n cynnwys yr holl is-linynnau.
Defnydd Dulliau Regex C#
Gadewch i ni edrych ar y defnydd o'r dulliau hyn drwy ysgrifennu rhaglen syml.
public static void Main(string[] args) { string patternText = "Hello"; Regex reg = new Regex(patternText); //IsMatch(string input) Console.WriteLine(reg.IsMatch("Hello World")); //IsMatch(string input, int index) Console.WriteLine(reg.IsMatch("Hello", 0)); //IsMatch(string input, string pattern) Console.WriteLine(Regex.IsMatch("Hello World", patternText)); //Replace(string input, string replacement) Console.WriteLine(reg.Replace("Hello World", "Replace")); //Split(string input, string pattern) string[] arr = Regex.Split("Hello_World_Today", "_"); foreach(string subStr in arr) { Console.WriteLine("{0}", subStr); } }
Allbwn yr uchodrhaglen
Gwir
Gwir
Gwir
Amnewid Byd
Helo
Byd
Heddiw
Yr esboniad am y cod uchod:
Ar ddechrau'r rhaglen, rydym wedi creu gwrthrych ac ar gyfer y patrwm y byddwn yn ei ddefnyddio ar gyfer y paru cod yn y mewnbwn llinyn dilynol, rydym wedi defnyddio fformatio testun i gadw pethau'n syml yn y dechrau ond os ydych yn gyfforddus gallwch ddechrau defnyddio patrymau mynegiant rheolaidd. (Byddwn yn trafod patrwm mynegiant rheolaidd yn fanwl wrth i ni symud ymlaen yn y tiwtorial hwn)
Yna, byddwn yn defnyddio llinyn cyfatebol i fewnbynnu'r ffactor yr ydym wedi'i ddatgan fel y gwrthrych penodedig gyda'r llinyn mewnbwn ac os yw'n cyfateb yna bydd yn dychwelyd i ddychwelyd ffug.
Y dull nesaf a ddefnyddiwyd gennym yw IsMethod(mewnbwn llinyn, mynegai int). Mae'r dull hwn yn derbyn dau baramedr, ac yma rydym yn darparu llinyn mewnbwn a'r mynegai lle mae'n rhaid i'r gêm gychwyn. Er enghraifft, yma roeddem am gychwyn y paru o ddechrau'r llinyn mewnbwn.
Yna dangoswyd y defnydd o IsMatch (mewnbwn llinyn, patrwm llinynnol). Yma fe wnaethom ddarparu'r llinyn mewnbwn yna roeddem am ddarganfod a yw'r testun patrwm yn bresennol yn y mewnbwn ai peidio. Os yw'n bresennol yna bydd yn dychwelyd yn wir (fel yn ein hachos ni) fel arall bydd yn dychwelyd ffug.
Dull arall a drafodwyd gennym yn cael ei ddisodli. Mae'r dull hwn yn eithaf defnyddiol mewn rhaglenni lle rydych chi am wneud newidiadau i'r data mewnbwnneu newid fformat y data presennol.
Yma rydym yn darparu dau baramedr, yr un cyntaf yw'r llinyn mewnbwn a'r ail yw'r llinyn y gellir ei ddefnyddio i ddisodli'r llinyn blaenorol. Mae'r dull hwn hefyd yn defnyddio'r patrwm a ddiffiniwyd yn y gwrthrych regex a ddiffiniwyd gennym yn gynharach.
Dull pwysig arall a ddefnyddiwyd gennym yw hollti. Defnyddir y dull hwn i rannu'r llinyn a roddir yn seiliedig ar rai patrymau cylchol. Yma, rydym wedi darparu llinyn “Hello_World_Today”.
Dewch i ni ddweud ein bod ni eisiau tynnu'r tanlinelliad o'r llinyn a roddwyd a chael yr is-linynnau. Ar gyfer hyn, rydyn ni'n nodi'r paramedr mewnbwn ac yna rydyn ni'n rhoi'r patrwm y mae angen i ni ei ddefnyddio fel pwynt hollti. Mae'r dull yn dychwelyd arae a gallwn ddefnyddio dolen syml fel foreach i adalw'r holl linynnau.
Cystrawen Mynegiant Rheolaidd
Mae yna nifer o gystrawenau gwahanol megis nodau arbennig, meintolyddion, dosbarthiadau nodau, ac ati y gellir eu defnyddio i gyd-fynd â phatrwm penodol o fewnbwn penodol.
Yn y rhan hon o'r tiwtorial, byddwn yn plymio'n ddwfn i'r gystrawen a gynigir gan regex a byddwn yn ceisio datrys rhai senarios bywyd go iawn eu defnyddio. Cyn i ni symud ymlaen, gwnewch yn siŵr eich bod wedi cael y syniad sylfaenol o regex a'r gwahanol ddulliau sydd ar gael o fewn y dosbarth regex.
Cymeriadau Arbennig
Defnyddir nodau arbennig mewn regex i aseinio sawl ystyr gwahanol i batrwm. Edrychwn yn awr arrhai o'r nodau arbennig a ddefnyddir yn eang a'u hystyr yn Regex.3
Nodiadau arbennig | Ystyr |
^ | Dyma un o'r gystrawen a ddefnyddir amlaf. Mae'n dynodi'r dechrau, y gair neu'r patrwm ar ôl i hyn ddechrau paru o ddechrau'r testun mewnbwn. |
$ | Defnyddir yr arwydd hwn ar gyfer paru geiriau o'r diwedd o'r llinyn. Bydd geiriau/patrymau a ddynodir cyn y symbol hwn yn cyfateb i'r geiriau sy'n bresennol ar ddiwedd y llinyn. |
. (dot) | Defnyddir dot i gydweddu nod unigol yn y llinyn a roddwyd sy'n digwydd unwaith. |
\n | Defnyddir hwn ar gyfer un newydd llinell. |
\d a \D Defnyddir llythrennau bach 'd' i gyd-fynd â nod digid a defnyddir priflythrennau 'D' i gydweddu â nod di-ddigid nodau. |
\s a \S Defnyddir 's' llythrennau bach i gyd-fynd â bylchau gwyn a defnyddir priflythrennau 'S' i gyd-fynd â gofod nad yw'n wyn . |
\w a \W Defnyddir 'w' mewn llythrennau bach i gyd-fynd â nodau alffaniwmerig/tansgorio a defnyddir 'W' mewn priflythrennau i gyd-fynd â di-air nodau. |
Cystrawen Meintiolwr
Defnyddir cystrawen meintiolwr i gyfrif neu feintioli'r meini prawf paru. Er enghraifft, os ydych am wirio a yw llinyn penodol yn cynnwys wyddor unwaith neu fwy. Gadewch i ni gael golwg ar rai o'r meintolyddion a ddefnyddir yn gyffredin mewn mynegiant Rheolaidd.
> MeintolwrCystrawen Ystyr |
* | Defnyddir y symbol hwn i gyd-fynd â'r nod blaenorol. |
19>+ Defnyddir y symbol hwn i gyd-fynd ag un nod neu fwy mewn rhes. |
{n} | Y digid rhifol y tu mewn i'r cyrliog defnyddir bresys i gyd-fynd â rhif y nod blaenorol a ddiffinnir gan rifol tu mewn braces cyrliog. |
{n,} | Defnyddir y rhifolyn tu mewn braces cyrliog a'r symbol hwn i wneud yn siŵr ei fod yn cyfateb o leiaf n (h.y. gwerth rhifol y tu mewn i'r braces). |
{ n, m} | Defnyddir y symbol hwn ar gyfer paru o'r nod blaenorol o n nifer o weithiau i m nifer o weithiau. |
? | Mae'r symbol hwn yn gwneud i nodau blaenorol gyfateb yn ddewisol. |
Dosbarth Nodau
Mae'r dosbarth nodau hefyd yn cael ei alw'n setiau nodau, ac mae hwn yn cael ei ddefnyddio i ddweud wrth y peiriant regex i chwilio am gydweddiad sengl o sawl nod. Bydd dosbarth nod yn cyfateb i un nod yn unig ac nid yw trefn y nodau sydd wedi'u hamgáu y tu mewn i'r set nodau o bwys.
[ range ] | Defnyddir y symbol cromfach sgwâr i gyfateb ar gyfer ystod o nodau. Er enghraifft, gallwn ei ddefnyddio i ddiffinio unrhyw gymeriad mewn ystod o'r wyddor “a” i “z” trwy amgáu'r amrediad y tu mewn i'r braced fel [a-z] |
Neu, gallwn hefyd baru â rhifol “1” i “ 9” trwy ddynodimynegiadau gan ddefnyddio rhai enghreifftiau amser real.
Senario 1: Dilyswch a yw'r llinyn mewnbwn yn cynnwys nodau wyddor 6 digid cas-ansensitif.
Senario mwyaf cyffredin ar gyfer mynegiant rheolaidd yw canfod a pharu gair penodol. Er enghraifft, gadewch i ni ddweud fy mod eisiau llinyn wyddor ar hap gan y defnyddiwr a dylai'r mewnbwn hwnnw fod yn union 6 digid o hyd.
I ddilysu y gallwn ddefnyddio mynegiant rheolaidd syml. Gadewch i ni ysgrifennu rhaglen i ddeall y mynegiant rheolaidd, ysgrifennu a defnyddio mewn ffordd well.
public static void Main(string[] args) { string patternText = @"^[a-zA-Z]{6}$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Helios")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Helo")); }
Allbwn
Gwir
Anghywir
0
Esboniad Yn yr enghraifft hon, rydym yn ceisio dilysu llinyn mewnbwn, i wirio a yw'n cynnwys nodau wyddor chwe digid. Gall y nodau fod mewn priflythrennau a llythrennau bach, felly mae angen i ni ystyried hynny hefyd.
Felly, yma fe wnaethom ddiffinio patrwm mynegiant rheolaidd mewn “patternText” newidyn ac yna ei drosglwyddo i'r gwrthrych regex . Nawr, mae'r llinellau cod nesaf yn eithaf syml, fe wnaethon ni ddefnyddio'r dull IsMatch i gymharu'r mynegiant rheolaidd a'r llinyn mewnbwn.
Gadewch i ni nawr edrych ar y mynegiant rheolaidd rydyn ni wedi'i ddyfeisio. Mae'r mynegiad (^[a-zA-Z]{6}$) yn cynnwys 4 rhan wahanol. “^”, “[a-zA-Z]”, “{6}” a “$”. Mae'r ail ran yn dynodi'r nodau sy'n cyfateb, a ddefnyddir i berfformio paru mynegiant, “a-z” ar gyfer llythrennau bach ac “A-Z” ar gyfer priflythrennau.
Y cyntafnod rhan “^” yn sicrhau bod y llinyn yn dechrau gyda phatrwm a ddiffinnir yn yr ail ran h.y. yr wyddor mewn priflythrennau a llythrennau bach.
Mae'r braces cyrliog yn y drydedd ran yn pennu nifer y nodau yn y llinyn y gellir eu hadnabod gan y patrwm diffiniedig h.y. 6 yn yr achos hwn a'r symbol “$” gwnewch yn siŵr ei fod yn gorffen gyda'r patrwm a ddiffinnir yn yr ail ran.
^[a-zA-Z]{6}$
Senario 2: Defnyddiwch fynegiad rheolaidd i ddilysu bod gair sy’n dechrau gyda “Super” ac sydd â gofod gwyn ar ôl hynny h.y. i ddilysu a yw “Super” yn bresennol ar ddechrau brawddeg. 3
Gadewch i ni dybio ein bod yn darllen rhywfaint o fewnbwn defnyddiwr a bod angen sicrhau bod y defnyddiwr bob amser yn dechrau ei frawddeg gyda gair, rhif neu wyddor arbennig. Gellir cyflawni hyn yn eithaf hawdd trwy ddefnyddio mynegiad rheolaidd syml.
Gadewch i ni edrych ar raglen sampl ac yna trafod yn fanwl sut i ysgrifennu'r ymadrodd hwn.
public static void Main(string[] args) { string patternText = @"^Super\s"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Super man")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Superhero")); }
Allbwn2
Gwir
Anghywir
Eglurhad
Yn yr enghraifft hon hefyd, fe wnaethom ddefnyddio gosodiad cod tebyg i'r hyn a wnaethom yn yr un cyntaf. Mae'r patrwm mynegiant rheolaidd yn y senario hwn yn gofyn am baru gyda chyfuniad o eiriau neu frawddegau sy'n dechrau gyda “Super”.
^Super
Felly, gan ein bod ni eisiau paru o ddechrau'r gair cyfres, byddwn yn dechrau trwy roi'r symbol “^”, yna byddwn yn rhoi'r patrwm yr ydym am ei gydweddu, yn yr achos hwn, “Super”. Nawr y patrwm[1-9]
[^ range] | Mae hwn yn dynodi dosbarth nodau negyddol. Mae'n cael ei ddefnyddio i gydweddu ag unrhyw beth, nid yn yr amrediad a ddynodir o fewn y cromfachau. |
\ | Defnyddir hwn i baru nodau arbennig a all fod â'u symbolau regex eu hunain. Defnyddir y slaes i gyfateb y nodau arbennig yn eu ffurf llythrennol. |
Grwpio
Gellir defnyddio cromfachau crwn neu gromfachau i grwpio rhan o'r rheolaidd mynegiant gyda'i gilydd. Mae hyn yn caniatáu i'r defnyddiwr naill ai ychwanegu meintiolydd gyda'r mynegiad.
Grouping | Ystyr |
( grŵp mynegiant ) | Defnyddir y cromfachau crynion ar gyfer grwpio mynegiad. |
cymeriadau felly bydd yn defnyddio'r symbol "+". Cyfunwch nhw a chawn y symbol ar gyfer y rhan gyntaf. |
(\w+)
Gwahanodd braced hwn yn rhannau. Y rhan nesaf yw'r symbol dot. Gan fod gan y symbol dot ei ystyr mewn regex, byddwn yn defnyddio slaes o'i flaen i roi ystyr llythrennol iddo. Cyfunwch y ddau ac mae gennym y ddwy ran gyntaf o'r regex dan sylw.
(\w+)\.
Nawr, ar gyfer y drydedd ran a'r rhan olaf, gallwn ddiffinio'n uniongyrchol yr estyniadau ffeil gofynnol wedi'u gwahanu gan “llythrennau bach yn nhrefn yr wyddor. Os dymunwch gallwch hefyd gynnwys nodau rhifol neu briflythrennau yn nhrefn yr wyddor ond ar gyfer y senario hwn, byddwn yn mynd gyda'r wyddor mewn llythrennau bach.
Os byddwn yn ychwanegu'r mynegiad ar gyfer yr wyddor mewn llythrennau bach gyda hyd yn amrywio o 2 i 12 nod, yna bydd gennym y mynegiad canlynol.
^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12}
Nawr, rydym yn unig ar ôl gyda'r mynegiad ar gyfer estyniad parth, yn debyg i'r pedwerydd senario, byddwn yn ymdrin â rhai estyniadau parth penodol. Os ydych chi eisiau gallwch chi ychwanegu mwy ohonyn nhw trwy eu hamgáu y tu mewn i fraced crwn a'u gwahanu gyda “