Kigeuzi cha Bure

Regex Mjaribu

Jaribu na utatue misemo ya kawaida papo hapo kwenye kivinjari chako. Angazia zinazolingana, angalia vikundi vya kunasa na utumie hali ya kubadilisha - bila malipo na ya faragha.

//g
Bendera:

Kuhusu zana hii

Semi za kawaida ni lugha mahususi ya kikoa kwa kulinganisha ruwaza katika maandishi. Zimekuwa sehemu ya kompyuta tangu 1968 na sasa zimejengwa katika kila lugha ya kisasa ya programu, kihariri maandishi, na zana ya utafutaji ya mstari wa amri. Sintaksia ni fupi lakini inakabiliwa na makosa: mabadiliko madogo hutoa tabia tofauti ya ulinganifu, na misemo changamano huwa isiyoweza kusomeka haraka. Kijaribu kinachoonyesha mechi katika muda halisi unapohariri mchoro ndiyo njia mwafaka zaidi ya kuunda na kuthibitisha regex.

Kijaribio hiki huendeshwa katika kivinjari chako kwa kutumia injini ya regex ya JavaScript (ile ile ambayo programu yako hutumia ikiwa inaendeshwa katika kivinjari). Sampuli na maandishi ya jaribio yanasasisha kikamilifu: kila badiliko la aidha linaendesha tena mechi. Vikundi vinavyolingana vinaangaziwa, vikundi vilivyokamatwa vimeorodheshwa, na bendera (zisizojali kesi, laini nyingi, za kimataifa) huonyeshwa kwa majaribio.

Sintaksia ya Regex inatofautiana kidogo kati ya injini. JavaScript inafuata maalum ya ECMAScript; Python, PCRE (inayotumiwa na PHP na wengine wengi), Java, na Go kila moja ina lahaja zake zenye sifa zinazoingiliana lakini zisizo sawa. Sampuli zilizotengenezwa hapa hutumia sintaksia ya ECMAScript; Ubebekaji wa injini-tofauti unahitaji kuangalia nyaraka za kila lengwa.

Kwa nini Utumie Kijaribu cha Regex

Hitilafu za Regex ni ngumu sana kutatua baada ya kupelekwa. Mchoro unaoonekana kuwa wa kuridhisha unaweza kuendana zaidi au chini ya ilivyokusudiwa, usifaulu katika hali ngumu, au kuwa na urejeshi wa janga kwenye ingizo fulani. Mitindo ya kujaribu kwa mwingiliano dhidi ya ingizo wakilishi hupata matatizo kabla ya kukagua msimbo na uzalishaji.

Sampuli pia hunufaika na uwekaji kumbukumbu. Kuonyesha regex kando ya ingizo ambayo inapaswa kuendana na ingizo ambayo haipaswi kulinganisha hufanya dhamira iwe wazi. Watunzaji wa siku zijazo (pamoja na wewe mwenyewe katika kipindi cha miezi sita) huthamini kesi za majaribio zilizorekodiwa kuliko wanavyothamini wajanja wa mjengo mmoja.

Jinsi ya kutumia

Andika mchoro, charaza ingizo la jaribio, angalia mechi zilizoangaziwa moja kwa moja.

  1. Weka muundo wako: Andika muundo wa regex katika uga wa muundo. Regex halisi (/muundo/bendera) na aina za muundo pekee hufanya kazi; bendera zinaweza kuwekwa kupitia pembejeo za bendera.
  2. Ongeza ingizo la jaribio: Bandika maandishi ya sampuli ambayo mchoro unapaswa kuendana (na kwa hakika pia uandike haupaswi kuendana). Kijaribu huendesha mchoro dhidi ya ingizo na vivutio vinavyolingana.
  3. Weka bendera: Bendera za kawaida: g (kimataifa, tafuta zinazolingana zote), i (haijalishi herufi nyingi), m (mistari nyingi, ^ na $ mstari wa mechi huanza/mwisho), s (dotall, . inalingana na laini mpya), u (Unicode).
  4. Kagua matokeo: Kila mechi imeangaziwa kwenye ingizo. Vikundi vya kunasa huonekana katika orodha iliyo na faharasa ya kikundi na thamani. Kijaribu pia kinaonyesha hesabu ya mechi na hitilafu zozote za ujumuishaji katika muundo.

Kesi za Matumizi ya Kawaida

Maelezo ya Kiufundi

JavaScript regex inafuata vipimo vya ECMAScript. Sifa kuu: madarasa ya wahusika ([abc], [^abc]), vihakiki (*, +, ?, {n,m}), mbadala (|), kambi ((...)), vikundi vya kukamata na visivyokamata, kuangalia mbele na kuangalia nyuma (injini za kisasa), marejeleo, vikundi vilivyotajwa, utoroshaji wa mali ya Unicode (pamoja na seti ya bendera ya utoroshaji).

Tofauti muhimu kutoka kwa PCRE na Python: msaada wa kuangalia nyuma ni wa hivi karibuni katika JavaScript (2018+); vikundi vilivyotajwa hutumia (?<jina>...) sintaksia; baadhi ya kutoroka kwa Unicode kunahitaji u bendera kufanya kazi ipasavyo. Sampuli zinazokusudiwa kwa matumizi ya lugha-tofauti zinapaswa kuangaliwa dhidi ya hati za kila lengwa.

Utendaji: injini za regex zinazoegemezwa nyuma (nyingi ikijumuisha JavaScript) zinaweza kuwa na urejeshaji wa janga kwenye mifumo fulani ya kiafya. Majaribio yanayoning'inia kijaribu ni ishara kwamba mchoro unahitaji kurahisishwa - kwa kawaida kwa kuepuka vithamini vilivyowekwa kwenye kiota na ubadilishanaji usio na utata.

Mazoea Bora

Maswali yanayoulizwa mara kwa mara

Chombo hiki kinaunga mkono ladha gani ya regex?
Inatumia injini ya RegExp iliyojengewa ndani ya JavaScript, inayoauni sintaksia ya kawaida ikiwa ni pamoja na vielelezo vya kutazama, kutazama nyuma (katika vivinjari vya kisasa), vikundi vya kunasa vilivyopewa majina, na utoroshaji wa mali ya Unicode.
Je! ninaweza kujaribu uingizwaji wa regex?
Ndiyo. Badili hadi modi ya Badilisha ili uweke muundo mbadala. Unaweza kutumia $1, $2, n.k. kwa kunasa marejeleo ya nyuma ya kikundi, na $<name> kwa vikundi vilivyotajwa.
Kwa nini regex yangu inalingana tofauti hapa kuliko Python/PHP?
Lugha tofauti za programu zina injini za regex tofauti kidogo. JavaScript haitumii vidhibiti vya umiliki au baadhi ya vipengele mahususi vya PCRE. Sintaksia ya msingi (madarasa ya wahusika, vibainishi, vikundi) ni sawa katika lugha zote.
Chombo huhifadhi mifumo yangu ya regex?
Hapana. Hakuna kitu kinachohifadhiwa au kupitishwa. Chombo kinaendesha kabisa kwenye kivinjari chako. Unaweza alamisho au kushiriki ruwaza kwa kunakili kamba ya regex.
Je, ninawezaje kulinganisha mhusika maalum halisi?
Epuka kwa kurudi nyuma. Ili kulinganisha nukta halisi: \. Ili kuendana na kurudi nyuma halisi: \\. Ndani ya madarasa ya wahusika [...], wahusika wengi maalum hupoteza maana yao.
Je, kijaribu kinaendesha kwenye seva?
Hapana. Ukusanyaji wa ruwaza na ulinganishaji hutokea katika kivinjari chako kwa kutumia kipengee asili cha RegExp.
Je! ninaweza kujaribu mifumo ya injini zisizo za JavaScript?
Mara nyingi. Kwa mifumo rahisi injini kuu zinakubali. Kwa vipengele vya kina (kuangalia nyuma, vikundi vya atomiki, vidhibiti vya umiliki, utoroshaji wa mali ya Unicode), thibitisha dhidi ya hati za injini inayolengwa.
Je, inashughulikia pembejeo kubwa sana?
Hadi megabaiti chache hufanya kazi vizuri. Ingizo kubwa zaidi zinaweza kupunguza kasi au kuning'iniza kivinjari, haswa kwa mifumo inayoelekea kurudi nyuma.