Whiz Tools

Mtihani wa Mchoro wa Regex

Nakili

Matokeo ya Mechi

Ingiza mchoro na maandiko ya kujaribu kuona matokeo

Hifadhi Mchoro

Michoro Iliyo Hifadhiwa

Hakuna michoro iliyohifadhiwa bado

Mwongozo wa Alama za Regex

.Inalingana na herufi yoyote isipokuwa newline
\dInalingana na nambari yoyote (0-9)
\DInalingana na herufi zisizo nambari
\wInalingana na herufi yoyote ya neno (a-z, A-Z, 0-9, _)
\WInalingana na herufi yoyote isiyo neno
\sInalingana na herufi yoyote ya nafasi
\SInalingana na herufi yoyote isiyo nafasi
^Inalingana na mwanzo wa mstari
$Inalingana na mwisho wa mstari
*Inalingana na 0 au zaidi ya herufi iliyotangulia
+Inalingana na 1 au zaidi ya herufi iliyotangulia
?Inalingana na 0 au 1 ya herufi iliyotangulia
{n}Inalingana na haswa n ya herufi iliyotangulia
{n,}Inalingana na angalau n ya herufi iliyotangulia
{n,m}Inalingana na kati ya n na m ya herufi iliyotangulia
[abc]Inalingana na moja ya herufi zilizo ndani ya mabano
[^abc]Inalingana na herufi yoyote isiyo ndani ya mabano
(abc)Inakusanya tokeni nyingi pamoja na kunasa mechi
a|bInalingana na a au b
\bInalingana na nafasi ya mpaka wa neno

Mtihani wa Mchoro wa Regex na Validator

Utangulizi

Mtihani wa mchoro wa Regular Expression (regex) ni chombo muhimu kwa wabunifu, wachambuzi wa data, na yeyote anayefanya kazi na usindikaji wa maandiko. Validator hii ya mchoro wa regex inakuruhusu kuunda, kujaribu, na kuboresha regular expressions kwa wakati halisi, ikitoa mrejesho wa haraka wa kuona kuhusu mechi za mchoro. Iwe unathibitisha anwani za barua pepe, unachambua faili za logi, au unatoa data maalum kutoka kwa maandiko, mtihani wetu wa regex unafanya mchakato wa maendeleo na urekebishaji kuwa wa haraka na wa kueleweka zaidi.

Regular expressions ni mfuatano wenye nguvu wa kuoanisha mifumo ambayo inaruhusu utafutaji wa maandiko wa hali ya juu, uthibitishaji, na urekebishaji. Hata hivyo, sintaksia yao inaweza kuwa ngumu na changamoto. Mtihani huu wa mchoro wa regex unarahisisha mchakato kwa kuangazia mechi unapoandika, kuthibitisha sintaksia ya mchoro, na kukuruhusu kuhifadhi mifano inayotumika mara kwa mara kwa marejeo ya baadaye.

Jinsi ya Kutumia Mtihani wa Mchoro wa Regex

Kutumia validator yetu ya mchoro wa regex ni rahisi na ya kueleweka. Fuata hatua hizi ili kuanza:

  1. Ingiza Mchoro wa Regular Expression: Andika mchoro wako wa regex katika uwanja wa ingizo ulioainishwa. Chombo kinathibitisha mchoro wako kwa wakati halisi, kikikujulisha kuhusu makosa yoyote ya sintaksia.

  2. Chagua Bendera za Regex: Chagua bendera zinazofaa kwa mchoro wako:

    • g (Global): Pata mechi zote badala ya kusimama baada ya mechi ya kwanza
    • i (Case Insensitive): Fanya mchoro kuwa usio na kesi
    • m (Multiline): Fanya ^ na $ kuoanisha mwanzo/mwisho wa kila mstari
    • Mchanganyiko mbalimbali wa bendera hizi zinapatikana katika orodha ya kushuka
  3. Ingiza Maandishi ya Jaribio: Ingiza maandiko unayotaka kujaribu dhidi ya mchoro wako katika eneo la maandiko ya jaribio.

  4. Tazama Matokeo kwa Wakati Halisi: Unapoandika, chombo kiatomatikali:

    • Huangazia mechi zote za mchoro katika maandiko ya jaribio
    • Huonyesha jumla ya mechi zilizopatikana
    • Inaonyesha ikiwa mchoro unalingana na maandiko yote
  5. Hifadhi Mifano Muhimu: Kwa mifano unayotumia mara kwa mara:

    • Ingiza lebo ya kuelezea kwa mchoro wako
    • Bonyeza kitufe cha "Hifadhi"
    • Fikia mifano yako iliyohifadhiwa kutoka sehemu ya "Mifano Iliyohifadhiwa"
  6. Nakili Matokeo: Tumia kitufe cha "Nakili Mechi" kunakili maandiko yote yaliyopatikana kwenye clipboard yako kwa matumizi katika programu nyingine.

Kiolesura kimegawanywa katika paneli mbili kuu: paneli ya ingizo ambapo unaingiza mchoro wako na maandiko ya jaribio, na paneli ya matokeo inayonyesha mechi na habari za mchoro.

Msingi wa Mchoro wa Regular Expression

Regular expressions hutumia wahusika maalum na mfuatano kuunda mifumo ya utafutaji. Hapa kuna mwongozo wa alama za msingi za regex zinazoungwa mkono na chombo chetu:

Kuoanisha Wahusika

AlamaMaelezoMfanoInaoanisha
.Inaoanisha wahusika wowote isipokuwa newlinea.c"abc", "adc", "a1c", nk.
\dInaoanisha nambari yoyote (0-9)\d{3}"123", "456", "789", nk.
\DInaoanisha wahusika wowote wasiokuwa nambari\D+"abc", "xyz", nk.
\wInaoanisha wahusika wowote wa neno (a-z, A-Z, 0-9, _)\w+"abc123", "test_123", nk.
\WInaoanisha wahusika wowote wasiokuwa wahusika wa neno\W+"!@#", " + ", nk.
\sInaoanisha wahusika wowote wa nafasia\sb"a b", "a\tb", nk.
\SInaoanisha wahusika wowote wasiokuwa nafasi\S+"abc", "123", nk.

Viashiria vya Nafasi

AlamaMaelezoMfanoInaoanisha
^Inaoanisha mwanzo wa mstari^abc"abc" mwanzoni mwa mstari
$Inaoanisha mwisho wa mstariabc$"abc" mwishoni mwa mstari
\bInaoanisha mpaka wa neno\bword\b"word" kama neno kamili

Wakati wa Kujiandaa

AlamaMaelezoMfanoInaoanisha
*Inaoanisha 0 au zaidi ya wahusika waliotanguliaa*b"b", "ab", "aab", nk.
+Inaoanisha 1 au zaidi ya wahusika waliotanguliaa+b"ab", "aab", "aaab", nk.
?Inaoanisha 0 au 1 ya wahusika waliotanguliacolou?r"color", "colour"
{n}Inaoanisha hasa n ya wahusika waliotanguliaa{3}"aaa"
{n,}Inaoanisha angalau n ya wahusika waliotanguliaa{2,}"aa", "aaa", "aaaa", nk.
{n,m}Inaoanisha kati ya n na m ya wahusika waliotanguliaa{2,4}"aa", "aaa", "aaaa"

Madarasa ya Wahusika

AlamaMaelezoMfanoInaoanisha
[abc]Inaoanisha yeyote kati ya wahusika katika mabano[aeiou]"a", "e", "i", "o", "u"
[^abc]Inaoanisha wahusika wowote wasiokuwa katika mabano[^aeiou]Wahusika wowote isipokuwa "a", "e", "i", "o", "u"
[a-z]Inaoanisha wahusika wowote katika safu[a-z]Wahusika wote wa herufi ndogo

Uwekaji na Mbadala

AlamaMaelezoMfanoInaoanisha
(abc)Huunganisha tokeni nyingi pamoja na kukamata mechi(abc)+"abc", "abcabc", nk.
a|bInaoanisha ama a au bcat|dog"cat", "dog"

Mifano ya Juu ya Regex

Mara tu unapokuwa umejifunza misingi, unaweza kuunda mifano ya hali ya juu zaidi ili kutatua changamoto ngumu za usindikaji wa maandiko:

Uthibitishaji wa Barua Pepe

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Mchoro huu unathibitisha anwani za barua pepe kwa kuhakikisha zinafuata muundo wa kawaida: jina@domain.tld.

Uthibitishaji wa URL

^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$

Mchoro huu unathibitisha URL, ikiwa ni pamoja na zile zenye au zisizo na itifaki ya http/https.

Uthibitishaji wa Nambari za Simu (Muundo wa Marekani)

^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$

Mchoro huu unalingana na nambari za simu za Marekani katika muundo mbalimbali: (123) 456-7890, 123-456-7890, au 1234567890.

Uthibitishaji wa Tarehe (YYYY-MM-DD)

^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$

Mchoro huu unathibitisha tarehe katika muundo wa YYYY-MM-DD, ukiwa na uthibitishaji wa msingi wa safu za mwezi na siku.

Kuangalia na Kuangalia nyuma

Kuangalia na kuangalia nyuma kunaruhusu kuoanisha mifumo tu ikiwa inafuatiwa na au inatanguliwa na mfano mwingine:

  • Kuangalia chanya: a(?=b) inaoanisha "a" tu ikiwa inafuatiwa na "b"
  • Kuangalia hasi: a(?!b) inaoanisha "a" tu ikiwa si inafuatiwa na "b"
  • Kuangalia chanya nyuma: (?<=a)b inaoanisha "b" tu ikiwa inatanguliwa na "a"
  • Kuangalia hasi nyuma: (?<!a)b inaoanisha "b" tu ikiwa si inatanguliwa na "a"

Kufanya Kazi na Bendera za Regex

Mtihani wetu wa regex unasaidia bendera mbalimbali zinazobadilisha jinsi mifumo inavyoanisha:

  • g (Global): Pata mechi zote badala ya kusimama baada ya mechi ya kwanza
  • i (Case Insensitive): Fanya mchoro usiwe na kesi
  • m (Multiline): Fanya ^ na $ kuoanisha mwanzo/mwisho wa kila mstari
  • Mchanganyiko: Unaweza kuchanganya bendera kwa mahitaji ya mechi yaliyo ngumu zaidi

Matumizi ya Mtihani wa Mchoro wa Regex

Regular expressions yana matumizi mengi ya vitendo katika nyanja mbalimbali:

Maendeleo ya Mtandao

  1. Uthibitishaji wa Fomu: Hakikisha ingizo la mtumiaji linalingana na muundo unaohitajika:

    • Anwani za barua pepe: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
    • Nywila (ikiwa na mahitaji ya ugumu): ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
    • URL: ^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
  2. Uchambuzi wa HTML: Toa vipengele au sifa maalum:

    • Pata vitambulisho vya picha zote: <img[^>]+src="([^">]+)"
    • Toa viungo: <a[^>]+href="([^">]+)"

Usindikaji wa Data

  1. Uchambuzi wa Faili za Logi: Toa habari kutoka kwa ingizo za logi:

    • Anwani za IP: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
    • Tarehe na nyakati: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
    • Ujumbe wa makosa: ERROR: .*
  2. Uchambuzi wa CSV: Fanya kazi na thamani zilizotenganishwa kwa koma zikiwa na maeneo yanayoweza kunukuliwa:

    • Mchoro wa uwanja wa CSV: (?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))

Usindikaji wa Maandishi

  1. Pata na Badilisha: Tambua mifumo kwa ajili ya kubadilishwa:

    • Ondoa vitambulisho vya HTML: <[^>]*>
    • Fanya muundo wa nambari za simu: (\d{3})(\d{3})(\d{4})($1) $2-$3
  2. Utoaji wa Maudhui: Toa habari maalum kutoka kwa maandiko yasiyo na muundo:

    • Toa tarehe: \b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
    • Pata thamani za fedha: \$\d+(?:\.\d{2})?

Uprogramu na Uandishi wa Msimbo

  1. Kuhakikisha Sintaksia: Tambua muundo wa lugha:

    • Vigezo vya JavaScript: \b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
    • Mifano ya kazi: function\s+([a-zA-Z_$][\w$]*)\s*\(
  2. Urekebishaji wa Msimbo: Pata mifumo inayohitaji kuboreshwa:

    • Kuitwa kwa API zilizopitwa na wakati: \.oldMethod\(
    • Kazi zisizo salama: eval\(

Kuhifadhi na Kudhibiti Mifano

Mtihani wetu wa mchoro wa regex unajumuisha mfumo wa usimamizi wa mifano unaokuruhusu kuhifadhi na kutumia tena mifano yako ya kawaida:

Lini Kuhifadhi Mifano

Fikiria kuhifadhi mifano ambayo:

  • Unatumia mara kwa mara katika miradi tofauti
  • Ni ngumu na vigumu kukumbuka
  • Hutumikia madhumuni maalum ya uthibitishaji katika kazi yako
  • Umeboreshwa baada ya mizunguko mingi

Mbinu Bora za Lebo za Mifano

Unapohifadhi mifano, tumia lebo zinazofafanua ambazo:

  • Zinaonyesha kusudi la mchoro (mfano, "Mthibitishaji wa Barua Pepe")
  • Zinaelezea muundo maalum (mfano, "Nambari za Simu za Marekani")
  • Zinaelezea habari za toleo ikiwa unarekebisha mifano (mfano, "Mthibitishaji wa URL v2")
  • Ni fupi lakini zenye taarifa

Shirika la Mifano

Panga mifano yako iliyohifadhiwa kwa:

  • Kazi (uthibitishaji, utoaji, kubadilisha)
  • Eneo (maendeleo ya wavuti, usindikaji wa data)
  • Ugumu (msingi, wa juu)
  • Mara kwa mara ya matumizi

Kushiriki Mifano

Ingawa chombo chetu hakisaidii moja kwa moja kushiriki mifano kati ya watumiaji, unaweza:

  • Nakili mifano ili kushiriki na wenzako
  • Andika mifano yako katika hazina ya pamoja
  • Jumuisha maelezo ya mifano katika nyaraka za mradi

Kutatua Masuala ya Kawaida ya Regex

Hata wabunifu wenye uzoefu hukutana na changamoto na regular expressions. Hapa kuna suluhisho kwa masuala ya kawaida:

Makosa ya Sintaksia

Ikiwa mchoro wako unaonyesha kosa la uthibitishaji:

  • Angalia ikiwa kuna mabano, mabano, au braces yasiyo na mechi
  • Hakikisha wahusika maalum wamekwepa vizuri kwa kutumia backslash
  • Thibitisha kuwa wahusika wa kujiandaa wana wahusika au vikundi vya awali
  • Angalia sintaksia isiyo sahihi ya darasa la wahusika

Masuala ya Utendaji

Ikiwa regex yako ni polepole au inasababisha lag ya kivinjari:

  • Epuka matumizi ya kupita kwa viwango vingi (mfano, (a+)+)
  • Kuwa makini na kuangalia nyuma na kuangalia mbele katika maandiko makubwa
  • Fikiria kutumia mifano maalum badala ya mifano pana
  • Gawanya mifano ngumu kuwa sehemu ndogo, zinazoweza kudhibitiwa

Mechi zisizotarajiwa

Ikiwa mchoro wako unalingana na maandiko yasiyo ya kutarajiwa:

  • Tumia viashiria (^ na $) kuoanisha nyuzi nzima
  • Fanya madarasa ya wahusika kuwa maalum zaidi
  • Ongeza mipaka ya neno (\b) ambapo inafaa
  • Tumia kuangalia hasi ili kuondoa mifumo fulani

Hakuna Mechi Iliyopatikana

Ikiwa mchoro wako hauwezi kuoanisha maandiko yaliyotarajiwa:

  • Angalia masuala ya unyeti wa kesi (fikiria kutumia bendera i)
  • Thibitisha kuwa wahusika maalum wamekwepa vizuri
  • Jaribu mchoro wako kwenye mifano iliyorahisishwa kwanza
  • Hakikisha unatumia madarasa sahihi ya wahusika

Mbadala wa Regular Expressions

Ingawa regex ni yenye nguvu, si suluhisho bora kwa kila kazi ya usindikaji wa maandiko:

Mbinu za String

Kwa shughuli rahisi za maandiko, mbinu za asili za string mara nyingi ni wazi na bora:

  • String.indexOf() kwa kutafuta sub-nyuzi
  • String.startsWith() na String.endsWith() kwa kuangalia mipaka ya nyuzi
  • String.split() kwa tokenization ya msingi

WanaParse Maalum

Kwa muundo wa data iliyopangwa, wanaParse maalum ni thabiti zaidi:

  • WanaParse wa JSON kwa data ya JSON
  • WanaParse wa XML/HTML kwa lugha za alama
  • WanaParse wa CSV kwa data ya jedwali

Usindikaji wa Lugha Asilia (NLP)

Kwa kuelewa maana ya maandiko badala ya mifumo tu:

  • Zana za uchambuzi wa hisia
  • Utambuzi wa viumbe vilivyopewa majina
  • Uwekaji wa sehemu za hotuba

Lini Kuchagua Mbadala

Fikiria mbadala kwa regex unapokuwa:

  • Muundo wa maandiko ni wa kawaida na rahisi
  • Muundo huo una wanaParse wa kawaida unaopatikana
  • Unahitaji kuelewa maana ya semantiki
  • Utendaji ni muhimu kwa maandiko makubwa sana

Maswali Yanayoulizwa Mara kwa Mara

Nini maana ya regular expression?

Regular expression (regex) ni mfuatano wa wahusika unaofafanua mfano wa utafutaji. Mifano hii inaweza kutumika kwa utafutaji wa nyuzi, kuoanisha, na shughuli za urekebishaji wa maandiko.

Kwa nini nahitaji mtihani wa mchoro wa regex?

Mtihani wa mchoro wa regex unakusaidia kuendeleza na kurekebisha regular expressions kwa kutoa mrejesho wa kuona mara moja kuhusu mechi, kuthibitisha sintaksia ya mchoro, na kukuruhusu kujaribu mifano tofauti na bendera bila kuwa na haja ya kuitekeleza kwenye msimbo kwanza.

Ninaweza vipi kuoanisha wahusika maalum kama dot au asterisks?

Ili kuoanisha wahusika maalum wa kawaida wana maana maalum katika regex, unahitaji kuwakwepa kwa kutumia backslash. Kwa mfano, ili kuoanisha dot halisi, tumia \. badala ya . tu.

Ni tofauti gani kati ya .* na .*? katika mfano wa regex?

.* ni mji wa greedy unaoanisha wahusika wengi kadri iwezekanavyo, wakati .*? ni mji wa lazy (usio na greedy) unaoanisha wahusika wachache kadri iwezekanavyo. Tofauti hii ni muhimu unapohitaji kupata mechi fupi badala ya ndefu.

Je, naweza kutumia mtihani huu wa regex kwa mifano katika lugha yoyote ya programu?

Ingawa sintaksia ya msingi ya regex ni sawa katika lugha nyingi, kuna tofauti ndogo katika utekelezaji. Mtihani wetu hutumia injini ya regex ya JavaScript, ambayo inafanana na lugha nyingi za wavuti lakini inaweza kuwa na tofauti na regex katika lugha kama Python, Java, au Perl.

Ninaweza vipi kuthibitisha nyuzi nzima kwa regex?

Ili kuthibitisha kuwa nyuzi nzima inalingana na mfano, tumia kiashiria cha ^ mwanzoni na kiashiria cha $ mwishoni mwa regex yako. Kwa mfano, ^[0-9]+$ italingana tu na nyuzi zinazojumuisha kabisa nambari.

Ni nini vikundi vya kukamata na ninaweza vipi kuvifanya?

Vikundi vya kukamata, vinavyoundwa kwa mabano (), vinakuruhusu kutoa sehemu maalum za maandiko yaliyopatikana. Katika mtihani wetu, unaweza kuona mechi zote, ikiwa ni pamoja na vikundi vilivyokamatwa. Katika lugha za programu, unaweza kwa kawaida kufikia hizi kukamata kwa kuandika matokeo ya mechi.

Ninaweza vipi kufanya mifano yangu ya regex kuwa bora?

Ili kuboresha ufanisi wa regex: kuwa maalum na madarasa ya wahusika, epuka vikundi vya kukamata visivyohitajika (tumia vikundi visivyokamata (?:...) inapowezekana), punguza matumizi ya kuangalia mbele/nyuma, na epuka mifumo ya kurudi nyuma inayoweza kusababisha matatizo kama vile viwango vingi vya kujiandaa.

Ni makosa yapi ya kawaida ya regex ya kuepuka?

Makosa ya kawaida ni pamoja na: kutokuweka wahusika maalum, kuunda mifano ambayo ni greedy kupita kiasi, kusahau kuashiria mifano (kwa ^ na $), na kuandika mifano ngumu kupita kiasi ambazo ni vigumu kudumisha.

Je, regex inaweza kushughulikia muundo wa ndani kama HTML?

Regular expressions si nzuri kwa kuchambua muundo wa ndani kama HTML au XML. Ingawa unaweza kuunda mifano ya regex kwa mechi rahisi za HTML, kwa ujumla ni bora kutumia wanaParse maalum wa HTML kwa usindikaji wa HTML ngumu.

Marejeleo

  1. Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.
  2. Goyvaerts, J., & Levithan, S. (2012). Regular Expressions Cookbook. O'Reilly Media.
  3. "Regular expression." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Regular_expression
  4. MDN Web Docs. "Regular Expressions." Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  5. RegExr: Learn, Build, & Test RegEx. https://regexr.com/

Jaribu mtihani wetu wa mchoro wa regex leo ili kurahisisha kazi zako za usindikaji wa maandiko, kuthibitisha muundo wa ingizo, na kutoa data yenye maana kutoka kwa maandiko yasiyo na muundo. Iwe wewe ni beginner unayejifunza misingi ya regular expressions au mbunifu mwenye uzoefu anayefanya kazi kwenye kuoanisha mifumo ngumu, chombo chetu kinatoa vipengele unavyohitaji kuunda, kujaribu, na kuboresha mifano yako ya regex kwa ufanisi.

Maoni