Partekatu honen bidez:


IsMatch, Match eta MatchAll funtzioak

Hauei aplikatzen zaie: Canvas aplikazioak Ereduetan oinarritutako aplikazioak Power Pages Power Platform CLI

Bat datorren probak edo testu-kate baten zatiak ateratzen ditu patroi baten arabera.

Deskribapenak

IsMatch funtzioaren bidez, testu-kateak karaktere arruntak, aurrez definitutako patroiak edo a. eredu bat betetzen dituen ala ez adierazten du adierazpen erregularra. Match eta MatchAll funtzioek bat datorrena itzultzen dute, bat datozen azpibalioak barne.

IsMatch erabil daiteke erabiltzaileak Text input kontrolean idatzitakoa berresteko. Adibidez, erabiltzaileak baliozko helbide elektronikoa sartu duen ala ez baieztatu emaitza datu-iturburuen gorde aurretik. Sarrera zure irizpideekin bat ez badator, gehitu erabiltzaileak sarrera zuzentzeko eskatzen duten beste kontrol batzuk.

Erabili Match eredua eta bat datozen lehen testu katea ateratzeko MatchAll bat datozen testu kate guztiak ateratzeko. Azpielementuak kate konplexuak analizatzeko ere atera ditzakezu.

Match Aurkitutako lehen emaitzaren informazio erregistro bat itzultzen du eta MatchAll aurkitutako emaitza bakoitzeko erregistro taula bat itzultzen du. Erregistroak edo erregistroek honako hauek dituzte:

Column Idatzi Deskribapenak
izendatutako azpielementua edo azpielementuak Testu-mezua Azpielementua izendatu bakoitzak bere zutabea izango du. Sortu izendatutako azpielementua (?<izena>...) erabiliz adierazpen erregularrean. Azpielementu batek aurrez definitutako zutabeetako baten izen bera badu (azpian), azpielementuak lehentasuna du eta abisu bat sortzen da. Abisu hau ekiditeko, berrizendatu azpielementua.
FullMatch Testua Bat datorren testu kate guztia.
StartMatch Zenbakia Sarrerako testuaren katearen barruan emaitzaren hasierako posizioa. Katearen lehenengo karaktereak 1 itzultzen ditu.
SubMatches Zutabe bakarreko taulako testua (Balioa zutabea) Izena eta izenik gabeko azpielementuak taula adierazpen arruntean agertzen diren ordenan. Oro har, izendatutako azpielementuak errazago lantzen dira eta bultzatzen dira. Erabili ForAll funtzioa edo Last( FirstN( ... ) ) funtzioak banakako azpielementuarekin lan egiteko. Adierazpen erregularrean azpi-partidarik zehazten ez bada, taula hau egongo da, baina hutsik.

Funtzio hauek onartzen dituzte MatchOptions. Lehenespenez:

  • Funtzio hauek maiuskularekin erlazionatzen dira. Erabili MatchOptions.IgnoreCase mauskulak eta minuskulak bereizten ez dituen bat-etortzeak egiteko.
  • IsMatch testu-kate osoarekin bat dator (Osoa MatchOption) bitartean Match eta MatchAll bilaketa bat aurkitzea testu-katearen edozein lekutan (Honako hauek ditu MatchOption). Erabili Osoa, Honako hauek ditu, BeginsWith, edo EndsWith zure adibiderako egokia den moduan.

IsMatch egia itzultzen du testu-katea patroiarekin bat datorren edo faltsua ez bada. Match itzultzen du hutsik ez bada bat datorrenarekin probatu ISBLANK funtzioarekin. MatchAll hutsik dagoen taula bat itzultzen du ez bada aurkitzen IsEmpty funtzioarekin proba daitekeen emaitzarik.

MatchAll erabiltzen ari bazara testu-katea zatitzeko, kontuan hartu Split funtzioa errazagoa eta azkarragoa erabiltzea.

Ereduak

Funtzio horiek erabiltzeko gakoa bat etorriko den eredua deskribatzerakoan dago. Testu-kate batean eredua deskribatzen duzu:

  • Ohiko karaktereak, adibidez "abc" edo "123".
  • Aurrez zehaztutako ereduak, adibidez Hizkia, MultipleDigits edo Helbide elektronikoa. (Match zenbakitzeak eredu hauek definitzen ditu.)
  • Adierazpen erregularreko kodeak, adibidez "\d+\s+\d+" edo "[a-z]+".

Konbinatu elementu hauek kate-kateatze eragilea & erabiliz. Adibidez, "abc" & Digit & "\s+" "a", "b" eta "c" karaktereekin bat datorren eredu balioduna da, 0tik 9rako zifra batekin jarraian, eta gutxienez zuriuneko karaktere batekin.

Ohiko karaktereak

Eredurik sinpleena zehazki parekatutako karaktere arrunten sekuentzia da.

Adibidez, gailuarekin erabiltzen denean IsMatch funtzioa "Hello" katea "Kaixo" ereduarekin bat dator zehazki. Ez gehiago eta ez gutxiago. "Kaixo!" katea ez dator bat eredua amaierako harridura-puntuagatik eta "h" hizkiaren kasuan okerra delako. (Ikus MatchOptions portaera hau aldatzeko moduetarako.)

Ereduaren hizkuntzan, karaktere jakin batzuk helburu berezietarako gordetzen dira. Karaktere hauek erabiltzeko, aurrez aurre jarri ezazu \ (atzeragokoa) pertsonaia hitzez hitz hartu behar dela adierazteko edo gai honetan gero deskribatutako aurrez definitutako patroi bat erabiltzea. Taula honetan karaktere bereziak agertzen dira:

Karaktere berezia Deskribapenak
. puntua
? galdera-ikurra
* izartxoa
+ plus
( ) parentesiak
[ ] parentesi karratuak
{ } giltzak
^ azentu zirkunflexua
$ dolarraren ikurra
| barra bertikala
\ barra alderantzikatua

Adibidez, "Kaixo?" eredua erabiliz "Kaixo\?" galdera ikurraren aurretik atzera-barra batekin.

Aurrez definitutako ereduak

Aurrez definitutako ereduek modu erraz bat eskaintzen dute, karaktere multzo batekin edo karaktere anitzekin sekuentziarekin bat egiteko. Erabili kateak kateatze-eragilea & zure testu-kateak Part ko kideekin konbinatzeko. zenbakia:

Emaitzen zenbakitzea Deskribapenak Adierazpen erregularra
Any Edozein karakterearekin bat dator. .
Comma Komarekin bat dator. ,
Digit Zenbaki bakarrarekin bat dator ("0" "9" bidez). \d
Email "A bilduaren" ikurra duen helbide elektronikoa dator ("@") eta puntu bat (".") dituen domeinu izena da. .+\@.+\\.[^\\.]{2,}
Hyphen Marratxo batekin bat dator. \-
LeftParen Ezkerreko parentesi batekin bat dator "(". \(
Letter Letra batekin bat dator. \p{L}
MultipleDigits Zenbaki bat edo gehiago lotzen ditu. \d+
MultipleLetters Letra bat edo gehiago lotzen ditu. \p{L}+
MultipleNonSpaces Espazio zuririk gehitzen ez duten karaktere bat edo gehiago bat datoz (ez espazioa, tabuladorea edo lerro berria). \S+
MultipleSpaces Espazio zuriak gehitzen dituzten karaktere bat edo gehiago bat datoz (espazioa, tabuladorea edo lerro berria). \s+
NonSpace Zuriunea gehitzen ez duen karaktere bakarrarekin bat dator. \S
OptionalDigits Zerorekin edo gehiago lotzen ditu. \d*
OptionalLetters Zerorekin edo letra bat edo gehiago lotzen ditu. \p{L}*
OptionalNonSpaces Espazio zuriek ez dituzten zero, karaktere bat edo gehiago bat datoz. \S*
OptionalSpaces Espazio zuriek dituzten zero, karaktere bat edo gehiago bat datoz. \s*
Period Puntuarekin bat dator ("."). \.
RightParen Eskuineko parentesi batekin bat dator ")". \)
Space Zuriunea gehitzen duen karakterea bat dator. \s
Tabuladorea Fitxa karaktere batekin bat dator. \t

Adibidez, eredua "A" & MultipleDigits "A" hizkiarekin bat etorriko da eta ondoren zifra bat edo gehiagorekin.

Adierazpen erregularrak

Funtzio hauek erabiltzen duten eredua adierazpen erregularra da. Gai honetan lehenago azaldutako karaktere arruntak eta aurrez zehaztutako patroiak ohiko adierazpenak eraikitzen laguntzen dute.

Adierazpen erregularrak oso indartsuak dira, programazio lengoaia askotan eskuragarri daude eta helburu askotarako erabiltzen dira. Sarritan puntuazio-marken zorizko sekuentzia baten itxura izan dezakete. Artikulu honek ez ditu adierazpen arrunten alderdi guztiak deskribatzen, baina informazio ugari, tutorialak eta tresnak eskuragarri daude sarean.

Adierazpen erregularrak dialekto desberdinetan etortzen dira, eta Power Apps JavaScript dialektoaren aldaera bat erabiltzen du. Ikusi adierazpen erregularreko sintaxia sintaxirako sarrera baterako. Izena duten azpielementuak (batzuetan izendatutako kaptura-taldeak) onartzen dira:

  • Izendatutako azpielementuak: (?<izena>...)
  • Izena duten atzeko erreferentziak: \k<izena>

Gai honetan lehenago aipatu den Match zenbakitzearen taulan, zenbakitze bakoitza errenkadan agertzen da dagokion adierazpen erregularraren moduan.

Emaitzen aukerak

Funtzio hauen portaera alda dezakezu aukera bat edo gehiago zehaztuz, kate-kateatze eragilea erabiliz konbina ditzakezu (&).

MatchOptions zenbakitzea Deskribapenak Eragina adierazpen erregular batean
MatchOptions.BeginsWith Ereduak testuaren hasieratik bat etorri behar du. ^ gehitzen du adierazpen erregularraren hasieraraino.
MatchOptions.Complete IsMatch elementuaren lehenetsia. Ereduak testuaren kate osoarekin bat etorri behar du, hasieratik amaieraino. ^ gehitzen du hasieran eta $ amaieran adierazpen erregularrean.
MatchOptions.Contains Match eta MatchAll elementuetan lehenetsia. Ereduak testuaren nonbait agertu behar du baina ez da hasi behar edo amaitzen. Ez du aldatzen adierazpen arrunta.
MatchOptions.EndsWith Ereduak testuaren katearen amaieratik bat etorri behar du. $ gehitzen du adierazpen erregularraren amaieran.
MatchOptions.IgnoreCase Berdin gisa tratatzen ditu letra maiuskulak eta minuskulak. Berez, bat egitea letra maiuskulak dira. Ez du aldatzen adierazpen arrunta. Aukera hau adierazpen erregularrentzako "i" aldatzaile estandarraren baliokidea da.
MatchOptions.Multiline Lerro ugaritan bat dator. Ez du aldatzen adierazpen arrunta. Aukera hau adierazpen erregularrentzako "m" aldatzaile estandarraren baliokidea da.

MatchAll erabiltzen da adierazpen arruntetarako "g" aldatzaile estandarra erabiltzearen baliokidea da.

Sintaxia

IsMatch( Testua, Eredua [, Aukerak ] )

  • Testua - Beharrezkoa. Probatuko den testu-katea.
  • Eredua – Beharrezkoa. Testu-kate gisa probatzeko eredua. Kateatu aurrez definitutako ereduak Match zenbakitzeak definitzen du, edo adierazpen arrunta eman. Eredua Aplikazioa exekutatzen den bitartean aldatzen diren aldagai, datu-iturri edo bestelako erreferentzia dinamikorik gabeko formula konstantea izan behar du.
  • Aukerak - Aukerakoa. MatchOptions zenbakitzearen balioen testu-kateen konbinazioa. Lehenetsiz, MatchOptions.Complete erabiltzen da.

Match( Testua, Eredua [, Aukerak ] )

  • Testua - Beharrezkoa. Bat etorriko den testu-katea.
  • Eredua – Beharrezkoa. Testu-kate gisa bat etorriko den eredua. Kateatu aurrez definitutako ereduak Match zenbakitzeak definitzen du, edo adierazpen arrunta eman. Eredua Aplikazioa exekutatzen den bitartean aldatzen diren aldagai, datu-iturri edo bestelako erreferentzia dinamikorik gabeko formula konstantea izan behar du.
  • Aukerak - Aukerakoa. MatchOptions zenbakitzearen balioen testu-kateen konbinazioa. Lehenetsiz, MatchOptions.Contains erabiltzen da.

MatchAll( Testua, Eredua [, Aukerak ] )

  • Testua - Beharrezkoa. Bat etorriko den testu-katea.
  • Eredua – Beharrezkoa. Testu-kate gisa bat etorriko den eredua. Kateatu aurrez definitutako ereduak Match zenbakitzeak definitzen du, edo adierazpen arrunta eman. Eredua Aplikazioa exekutatzen den bitartean aldatzen diren aldagai, datu-iturri edo bestelako erreferentzia dinamikorik gabeko formula konstantea izan behar du.
  • Aukerak - Aukerakoa. MatchOptions zenbakitzearen balioen testu-kateen konbinazioa. Lehenetsiz, MatchOptions.Contains erabiltzen da.

IsMatch adibideak

Ohiko karaktereak

Imajinatu zure aplikazioak Text input kontrola duela, TextInput1 izena duena. Erabiltzaileak kontrol horretan sartzen ditu balioak datu base batean gordetzeko.

Erabiltzaile motak Hello world sartu TextInput1.

Formula Deskribapenak Emaitza
IsMatch( TextInput1.Text, "Hello world" ) Erabiltzailearen sarrerak bat datozen ala ez probatzen du, "Hello world" katea. egia
IsMatch( TextInput1.Text, "Good bye" ) Erabiltzailearen sarrerak bat datozen ala ez probatzen du, "Good bye" katea. faltsua
IsMatch( TextInput1.Text, "hello", Contains ) Erabiltzailearen sarrerak "hello" hitza (maiuskulak eta minuskulak kontuan hartzen dira) adierazten duen ala ez probatzen du. faltsua
IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) Erabiltzailearen sarrerak "hello" hitza (maiuskulak eta minuskulak ez dira kontuan hartzen) adierazten duen ala ez probatzen du. egia

Aurrez definitutako ereduak

Formula Deskribapenak Emaitza
IsMatch( "123-45-7890", Digit & Digit & Digit & Hyphen & Digit & Digit & Hyphen & Digit & Digit & Digit & Digit ) Estatu Batuetako Gizarte-segurantzaren zenbakiekin bat dator egia
IsMatch( "joan@contoso.com", Email ) Helbide elektroniko batekin bat dator egia
IsMatch( "123.456", MultipleDigits & Period & OptionalDigits ) Zenbaki sekuentzia bat, aldi bat eta ondoren zero edo gehiagoko zenbakiak lotzen ditu. egia
IsMatch( "123", MultipleDigits & Period & OptionalDigits ) Zenbaki sekuentzia bat, aldi bat eta ondoren zero edo gehiagoko zenbakiak lotzen ditu. Ez da epea agertzen testuan bat etortzeko, eta, beraz, eredua ez da bat datorrenarekin. faltsua

Adierazpen erregularrak

Formula Deskribapenak Emaitza
IsMatch( "986", "\d+" ) Zero baino handiagoa den osoko zenbaki batekin bat dator. egia
IsMatch( "1.02", "\d+(\.\d\d)?" ) Diru kopuru positiboa bat dator. Sarrerak hamartar puntu bat badu, sarrerak bi zenbaki karaktere ere eduki behar ditu hamartarren ondoren. Adibidez, 3.00 balio du, baina 3.1 ez da. egia
IsMatch( "-4.95", "(-)?\d+(\.\d\d)?" ) Diru kopuru positibo edo negatiboarekin bat dator. Sarrerak hamartar puntu bat badu, sarrerak bi zenbaki karaktere ere eduki behar ditu hamartarren ondoren. egia
IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" ) Estatu Batuetako Gizarte-segurantzaren zenbakiekin bat dator. Emandako sarrerako eremuaren formatua, mota eta luzera balioztatzen ditu. Lotu beharreko katea marratxo batez jarraitutako hiru karaktere izan behar da eta ondoren marratxo bat eta ondoren lau zenbaki karaktere. egia
IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" ) Aurreko adibidearen berdina, baina marratxoetako bat sarreran lekuz kanpo dago. faltsua
IsMatch( "AStrongPasswordNot", "(?!^[0-9]\*$)(?!^[a-zA-Z]\*$)([a-zA-Z0-9]{8,10})" ) Pasahitz sendoa balioztatzen du, zortzi, bederatzi edo 10 karaktere izan behar dituena, gutxienez zenbaki bat eta gutxienez karaktere alfabetiko bat ere. Kateak ez du karaktere berezirik izan behar. faltsua

Match eta MatchAll adibideak

Formula Deskribapenak Emaitza
Match( "Bob Jones <bob.jones@contoso.com>", "<(?<email>" & Match.Email & ")>" Kontaktu-informazio elektronikoaren zati bat bakarrik ateratzen du. {
helbide elektronikoa: "bob.jones@contoso.com"
FullMatch: "<bob.jones@contoso.com>",
SubMatches: [ "bob.jones@contoso.com" ],
StartMatch: 11
}
Match( "Bob Jones <InvalidEmailAddress>", "<(?<email>" & Match.Email & ")>" Kontaktu-informazio elektronikoaren zati bat bakarrik ateratzen du. Ez da helbide juridikorik aurkitzen (ez dago @ zeinurik) eta, beraz, funtzioak itzuliko du blank. hutsik
Match( Language(), "(<language>\w{2})(?:-(?<script>\w{4}))?(?:-(?<region>\w{2}))?" ) Hizkuntzen etiketaren hizkuntza, script eta eskualde zatiak ateratzen ditu Language funtzioak itzultzen ditu. Emaitza horiek Estatu Batuak islatzen dituzte; ikusi Language funtzioaren dokumentazioa adibide gehiago lortzeko. (?: eragileak karaktereak taldekatzen ditu beste azpielementurik sortu gabe. {
language: "en",
script: blank,
region: "US",
FullMatch: "en-US",
SubMatches: [ "en", "", "US" ],
StartMatch: 1
}
Match( "PT2H1M39S", "PT(?:<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ) Orduak, minutuak eta segundoak ateratzen ditu ISO 8601 iraupen-balio batetik. Ateratako zenbakiak testu-kate batean daude oraindik; erabili Value funtzioa zenbaki batera bihurtzeko, operazio matematikoak egin aurretik. {
hours: "2",
minutes: "1",
seconds: "39",
FullMatch: "PT2H1M39S",
SubMatches:["2","1","39"],
StartMatch: 1
}

Joan gaitezen azken adibide horretara. Kate hau data- eta ordu - balio bihurtu nahi baduzu Time funtzioa, izendatutako azpielementuak banaka pasatu behar dituzu. Horretarako, With funtzioa erabil dezakezu erregistroan funtzionatzen duen funtzioa Match itzultzen:

With(
    Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
   Time( Value( hours ), Value( minutes ), Value( seconds ) )
)

Adibide hauetarako, gehitu Button kontrol bat, ezarri OnSelect propietate hau formula honi eta, ondoren, hautatu botoia:

Set( pangram, "The quick brown fox jumps over the lazy dog." )
Formula Deskribapenak Emaitza
Match( pangram, "THE", IgnoreCase ) Bilatu "THE" emaitza guztiak pangram aldagaiak ditu. Kateak bi emaitza ditu, baina lehenengoa bakarrik itzultzen da erabiltzen ari zarenagatik Match eta ez MatchAll. SubMatches zutabea hutsik dago azpi-partidarik zehaztu ez delako. {
FullMatch: "The",
SubMatches: [ ],
StartMatch: 32
}
MatchAll( pangram, "the" ) Bilatu "the" emaitza guztiak pangram aldagaiak ditu. Proba maiuskulaz maiuskulak dira eta, beraz, "the" bigarren instantzia soilik aurkitzen da. SubMatches zutabea hutsik dago azpi-partidarik zehaztu ez delako. MatchAll pangramerako.
MatchAll( pangram, "the", IgnoreCase ) Bilatu "the" emaitza guztiak pangram aldagaiak ditu. Kasu honetan, proba ez da zentzuzkoa. Beraz, hitzaren bi kasuak aurkitzen dira. SubMatches zutabea hutsik dago azpi-partidarik zehaztu ez delako. MatchAll IgnoreCase-rekin.
MatchAll( pangram, "\b\wo\w\b" ) Erdian "o" duten hiru letren hitz guztiak aurkitzen ditu. Kontuan izan "marroia" baztertuta dago hiru letren hitza ez delako eta, beraz, "\b" (hitzaren muga) ez duela bat egiten. MatchAll b, wo, w eta b duten pangramerako.
Match( pangram, "\b\wo\w\b\s\*(?<between>\w.+\w)\s\*\b\wo\w\b" ) "Azeria" eta "txakurra" arteko karaktere guztiak lotzen ditu. {
honako hauen artean: "jumps over the lazy",
FullMatch: "fox jumps over the lazy dog",
SubMatches: [ "jumps over the lazy" ],
StartMatch: 17
}

Emaitzak ikusteko MatchAll galeria batean:

  1. Pantaila huts batean, sartu bertikal huts bat Galeria kontrola.

  2. Ezarri galeria elementuak jabetza MatchAll( pangram, "\w+" ) edo MatchAll( pangram, MultipleLetters ).

    Elementuen galeria.

  3. Aukeratu "Gehitu elementu bat Txertatu fitxatik" galeria kontrolaren erdian, galeriako txantiloia aukeratzeko.

  4. Gehitu Etiketa kontrola galeriako txantiloian.

  5. Ezarri etiketaren Testua propietatea ThisItem.FullMatch.

    Galeria gure adibideko testuko hitz bakoitzaz betetzen da. Size txikia galeriako txantiloia eta etiketaren kontrola hitz guztiak pantaila bakarrean ikusteko.

    Testu propietatea.