Austraaliast pärit üliõpilane - digitaalse turunduse iseloomustus I Gurukulli infosüsteemid

Soovime koostada valitud lehtede komplekti külastajate aruande.

Seega kasutame valikuid "Käitumine"> "Saidi sisu"> "Kõik lehed".

Osa lehenimedest täidame, nii et FR_PLT* lehtede jaoks FR_PLT_01, FR_PLT_02 ja nii edasi. See töötab.

Samuti FR_Country*, lehtede jaoks FR_Country_01, FR_Country_02 ja nii edasi. Töötab hästi.

Aga kui tahame ühendada, siis nii FR_PLT*|FR_Country*, aruanne on tühi.

Mis on probleemiks?

Kasutage oma regulaaravaldise seda lühema versiooni

FR_(PLT|Country) 

Ja veenduge, et kasutate filtri sees seadet "regulaaravaldis".

See on täiesti kehtiv regex, mis peaks tegema seda, mida soovite, nii et siin on minu arvamus: kas avate täpsema filtreerimisala ja ei lülita vastetüübi rippmenüüd Konverteerivalt RegExpi sobitamisele?

Vahemärkusena võib öelda, et see regex sobib teie soovidega, kuid ma kahtlustan, et mitte nii, nagu kavatsete. FR_PLT* sobib lehtedega, mis sisaldavad FR_PL koos või ilma T lõpus ja FR_Country* sobib lehtedega, mis sisaldavad FR_Countr koos või ilma y lõpus. Mõlemal juhul ei ole vaste tõstutundlik, nii et kui teil on leht all fr_pl see sobiks ka esimese regexiga.

Sobima FR_PLT mis tahes selle järel kasutaksite täpitähti: FR_PLT.*. Kuid kuna regex matšid jooksul vaikimisi stringi asemel, et nõuda kogu stringil vastet, ei sobita te enam-vähem FR_PLT.* kui lihtsalt FR_PLT.

Segate / ajate segamini regulaaravaldisi globulitega. FR_PLT* töötaks globaalina, kuid mitte regulaaravaldisena. Regulaaravaldisena sobiks see:

  • FR_PL
  • FR_PLT
  • FR-PLTT
  • FR-PLTTT
  • ABC-FR-PLT-XYZ
  • jne.

kuna täht tähendab "nullist või enamast viimasest tähemärgist" ja näib, et seda regulaarset avaldist rakendatakse "leidmise" viisil. See tähendab, et matš lihtsalt peab olema sisalduvad stringis. Samaväärne regulaarne avaldis, mida tegelikult soovite, on: ^FR_PLT.* kus ^ tähendab "algab" ja .* tähendab "nulli või rohkem tähemärke". Regulaarsetes väljendites . on "mis tahes tähemärgi" metamärk, erinevalt kasutatavatest gloobustest * tähendada "mis tahes märki".

Oma kahe juhtumi ühendamine kehtivaks regulaaravaldiseks võib olla üks järgmistest:

  • (^FR_PLT.*)|(^FR_Country.*)
  • ^FR_(PLT|Country).*
  • ^FR_(PLT|Country)

Need kõik tähendavad täpselt sama, kuid teist on lihtsustatud. The | on "või" ja sulgud on mõeldud rühmitamiseks. Viimane jätab .* kuna regulaaravaldis ei pea sobima tervikuga, näib, et seda kasutatakse siin "sisaldab" kontekstis.

none: Charles Robertson | none