Jaribu mifumo ya kawaida kwa kuangazia mechi kwa wakati halisi, uthibitisho wa mifumo, na maelezo ya alama za kawaida za regex. Hifadhi na utumie tena mifumo yako unayopenda kwa majina maalum.
Ingiza mchoro na maandiko ya kujaribu kuona matokeo
Ingiza mchoro na maandiko ya kujaribu kuona matokeo
Hakuna michoro iliyohifadhiwa bado
.
Inalingana na herufi yoyote isipokuwa newline\d
Inalingana na nambari yoyote (0-9)\D
Inalingana na herufi zisizo nambari\w
Inalingana na herufi yoyote ya neno (a-z, A-Z, 0-9, _)\W
Inalingana na herufi yoyote isiyo neno\s
Inalingana na herufi yoyote ya nafasi\S
Inalingana 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 mechia|b
Inalingana na a au b\b
Inalingana na nafasi ya mpaka wa nenoMtihani 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.
Kutumia validator yetu ya mchoro wa regex ni rahisi na ya kueleweka. Fuata hatua hizi ili kuanza:
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.
Chagua Bendera za Regex: Chagua bendera zinazofaa kwa mchoro wako:
g
(Global): Pata mechi zote badala ya kusimama baada ya mechi ya kwanzai
(Case Insensitive): Fanya mchoro kuwa usio na kesim
(Multiline): Fanya ^
na $
kuoanisha mwanzo/mwisho wa kila mstariIngiza Maandishi ya Jaribio: Ingiza maandiko unayotaka kujaribu dhidi ya mchoro wako katika eneo la maandiko ya jaribio.
Tazama Matokeo kwa Wakati Halisi: Unapoandika, chombo kiatomatikali:
Hifadhi Mifano Muhimu: Kwa mifano unayotumia mara kwa mara:
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.
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:
Alama | Maelezo | Mfano | Inaoanisha |
---|---|---|---|
. | Inaoanisha wahusika wowote isipokuwa newline | a.c | "abc", "adc", "a1c", nk. |
\d | Inaoanisha nambari yoyote (0-9) | \d{3} | "123", "456", "789", nk. |
\D | Inaoanisha wahusika wowote wasiokuwa nambari | \D+ | "abc", "xyz", nk. |
\w | Inaoanisha wahusika wowote wa neno (a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123", nk. |
\W | Inaoanisha wahusika wowote wasiokuwa wahusika wa neno | \W+ | "!@#", " + ", nk. |
\s | Inaoanisha wahusika wowote wa nafasi | a\sb | "a b", "a\tb", nk. |
\S | Inaoanisha wahusika wowote wasiokuwa nafasi | \S+ | "abc", "123", nk. |
Alama | Maelezo | Mfano | Inaoanisha |
---|---|---|---|
^ | Inaoanisha mwanzo wa mstari | ^abc | "abc" mwanzoni mwa mstari |
$ | Inaoanisha mwisho wa mstari | abc$ | "abc" mwishoni mwa mstari |
\b | Inaoanisha mpaka wa neno | \bword\b | "word" kama neno kamili |
Alama | Maelezo | Mfano | Inaoanisha |
---|---|---|---|
* | Inaoanisha 0 au zaidi ya wahusika waliotangulia | a*b | "b", "ab", "aab", nk. |
+ | Inaoanisha 1 au zaidi ya wahusika waliotangulia | a+b | "ab", "aab", "aaab", nk. |
? | Inaoanisha 0 au 1 ya wahusika waliotangulia | colou?r | "color", "colour" |
{n} | Inaoanisha hasa n ya wahusika waliotangulia | a{3} | "aaa" |
{n,} | Inaoanisha angalau n ya wahusika waliotangulia | a{2,} | "aa", "aaa", "aaaa", nk. |
{n,m} | Inaoanisha kati ya n na m ya wahusika waliotangulia | a{2,4} | "aa", "aaa", "aaaa" |
Alama | Maelezo | Mfano | Inaoanisha |
---|---|---|---|
[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 |
Alama | Maelezo | Mfano | Inaoanisha |
---|---|---|---|
(abc) | Huunganisha tokeni nyingi pamoja na kukamata mechi | (abc)+ | "abc", "abcabc", nk. |
a|b | Inaoanisha ama a au b | cat|dog | "cat", "dog" |
Mara tu unapokuwa umejifunza misingi, unaweza kuunda mifano ya hali ya juu zaidi ili kutatua changamoto ngumu za usindikaji wa maandiko:
1^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
2
Mchoro huu unathibitisha anwani za barua pepe kwa kuhakikisha zinafuata muundo wa kawaida: jina@domain.tld.
1^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
2
Mchoro huu unathibitisha URL, ikiwa ni pamoja na zile zenye au zisizo na itifaki ya http/https.
1^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
2
Mchoro huu unalingana na nambari za simu za Marekani katika muundo mbalimbali: (123) 456-7890, 123-456-7890, au 1234567890.
1^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
2
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 kunaruhusu kuoanisha mifumo tu ikiwa inafuatiwa na au inatanguliwa na mfano mwingine:
a(?=b)
inaoanisha "a" tu ikiwa inafuatiwa na "b"a(?!b)
inaoanisha "a" tu ikiwa si inafuatiwa na "b"(?<=a)b
inaoanisha "b" tu ikiwa inatanguliwa na "a"(?<!a)b
inaoanisha "b" tu ikiwa si inatanguliwa na "a"Mtihani wetu wa regex unasaidia bendera mbalimbali zinazobadilisha jinsi mifumo inavyoanisha:
^
na $
kuoanisha mwanzo/mwisho wa kila mstariRegular expressions yana matumizi mengi ya vitendo katika nyanja mbalimbali:
Uthibitishaji wa Fomu: Hakikisha ingizo la mtumiaji linalingana na muundo unaohitajika:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
Uchambuzi wa HTML: Toa vipengele au sifa maalum:
<img[^>]+src="([^">]+)"
<a[^>]+href="([^">]+)"
Uchambuzi wa Faili za Logi: Toa habari kutoka kwa ingizo za logi:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
ERROR: .*
Uchambuzi wa CSV: Fanya kazi na thamani zilizotenganishwa kwa koma zikiwa na maeneo yanayoweza kunukuliwa:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
Pata na Badilisha: Tambua mifumo kwa ajili ya kubadilishwa:
<[^>]*>
(\d{3})(\d{3})(\d{4})
→ ($1) $2-$3
Utoaji wa Maudhui: Toa habari maalum kutoka kwa maandiko yasiyo na muundo:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
\$\d+(?:\.\d{2})?
Kuhakikisha Sintaksia: Tambua muundo wa lugha:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
function\s+([a-zA-Z_$][\w$]*)\s*\(
Urekebishaji wa Msimbo: Pata mifumo inayohitaji kuboreshwa:
\.oldMethod\(
eval\(
Mtihani wetu wa mchoro wa regex unajumuisha mfumo wa usimamizi wa mifano unaokuruhusu kuhifadhi na kutumia tena mifano yako ya kawaida:
Fikiria kuhifadhi mifano ambayo:
Unapohifadhi mifano, tumia lebo zinazofafanua ambazo:
Panga mifano yako iliyohifadhiwa kwa:
Ingawa chombo chetu hakisaidii moja kwa moja kushiriki mifano kati ya watumiaji, unaweza:
Hata wabunifu wenye uzoefu hukutana na changamoto na regular expressions. Hapa kuna suluhisho kwa masuala ya kawaida:
Ikiwa mchoro wako unaonyesha kosa la uthibitishaji:
Ikiwa regex yako ni polepole au inasababisha lag ya kivinjari:
(a+)+
)Ikiwa mchoro wako unalingana na maandiko yasiyo ya kutarajiwa:
^
na $
) kuoanisha nyuzi nzima\b
) ambapo inafaaIkiwa mchoro wako hauwezi kuoanisha maandiko yaliyotarajiwa:
i
)Ingawa regex ni yenye nguvu, si suluhisho bora kwa kila kazi ya usindikaji wa maandiko:
Kwa shughuli rahisi za maandiko, mbinu za asili za string mara nyingi ni wazi na bora:
String.indexOf()
kwa kutafuta sub-nyuziString.startsWith()
na String.endsWith()
kwa kuangalia mipaka ya nyuziString.split()
kwa tokenization ya msingiKwa muundo wa data iliyopangwa, wanaParse maalum ni thabiti zaidi:
Kwa kuelewa maana ya maandiko badala ya mifumo tu:
Fikiria mbadala kwa regex unapokuwa:
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.
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.
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.
.*
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.
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.
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.
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.
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.
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.
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.
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.
Gundua zana zaidi ambazo zinaweza kuwa na manufaa kwa mtiririko wako wa kazi