← Բոլոր գործիքները

Regex փորձարկիչ

Կառուցեք, փորձարկեք և վրիպազերծեք կանոնավոր արտահայտություններ կենդանի ռեժիմով ձեր սեփական տեքստի հետ բրաուզերում։ Իմացեք նիշերի դասերը, քանակիչները, խարիսխները, խմբերը և դրոշները։

Regex Tester. կառուցեք և կարգաբերեք ձևանմուշները ձեր սեփական տեքստի հետ

Կանոնավոր արտահայտությունը փոքրիկ լեզու է՝ տեքստի ձևը նկարագրելու համար։ Փոխանակ հարցնելու «այս ճշգրիտ բառը այստե՞ղ է», regex-ը թույլ է տալիս հարցնել «կա՞ տող, որը նման է սրան»։ Հենց դա է դարձնում այն հզոր՝ կոդի խմբագիրներում, մատյան ֆայլերում, ձևերի մուտքագրումներում և սկրիպտներում տեքստ գտնելու, վավերացնելու, արտահանելու և փոխարինելու համար։ Հենց դա էլ հեշտացնում է սխալվելը, քանի որ ձևանմուշը, որը ձեր մտքում լավ է հնչում, կարող է լուռ համընկնել չափազանց շատ, չափազանց քիչ կամ ընդհանրապես ոչինչի հետ։

Հենց դա է պատճառը, թե ինչու ինտերակտիվ փորձարկումն ավելի լավն է, քան կռահումը։ Երբ մուտքագրում եք ձևանմուշ և հետևում, թե ինչպես են համընկնումները վառվում իրական նմուշային տեքստի ընթացքում, ստանում եք ակնթարթային հետադարձ կապ. տեսնում եք, ինչ է բռնվել, ինչ է սահել, և որ գրավման խումբն է բռնել որ հատվածը։ Մեր Regex Tester-ը ամբողջովին աշխատում է ձեր բրաուզերում։ Ձեր ձևանմուշը և նմուշային տեքստը երբեք չեն հեռանում էջից, այնպես որ կարող եք տեղադրել մատյան տողեր, էլ. հասցեներ կամ արտադրական տվյալներ՝ առանց որևէ բան սերվեր ուղարկելու։

Փայլող երկնագույն զտիչ, որը որսում է կոնկրետ ոսկեգույն նշաններ հոսող տվյալների հոսքից մուգ ինդիգո ֆոնի վրա
Regex-ը գործում է որպես զտիչ՝ ընտրելով միայն այն նշանները, որոնք համընկնում են ձեր ձևանմուշին։

Կառուցվածքային բլոկները, որոնք արժե իմանալ

Ամենօրյա ձևանմուշների մեծ մասը հավաքված է մի քանի փոքր կտորներից։ Սովորեք սրանք, և կկարողանաք կարդալ բնության մեջ հանդիպող regex-երի մեծամասնությունը։

Նիշային դասերը նկարագրում են թույլատրելի նիշերի բազմություն։ [aeiou]-ը համընկնում է ցանկացած մեկ ձայնավորի հետ, [0-9]-ը՝ մեկ թվանշանի, և [a-zA-Z]-ը՝ մեկ տառի։ Փակագծերի ներսում կարետը ժխտում է բազմությունը, ուստի [^0-9]-ը նշանակում է «ցանկացած նիշ, որը թվանշան չէ»։ Կրճատագրերը մուտքագրում են խնայում. \d-ը թվանշան է, \w-ը՝ բառային նիշ (տառեր, թվանշաններ, ընդգծում), \s-ը՝ բացատ, և կետը՝ ., համընկնում է համարյա ցանկացած մեկ նիշի հետ։

Քանակիչները ասում են, թե քանի անգամ կարող է կրկնվել նախորդ կտորը։ *-ը նշանակում է զրո կամ ավելի, +-ը՝ մեկ կամ ավելի, և ?-ը՝ զրո կամ մեկ (ընտրովի)։ Ճշգրիտ քանակների համար {3}-ը նշանակում է ուղիղ երեք, և {2,4}-ը՝ երկուսից չորս։ Այսպիսով \d{4}-ը համընկնում է քառանիշ տարեթվի հետ, և colou?r-ը համընկնում է երկու ուղղագրության հետ էլ։

Խարիսխները ձևանմուշը ամրացնում են դիրքի, ոչ թե նիշի հետ։ ^-ը համընկնում է տեքստի սկզբի հետ, $-ը՝ վերջի, և \b-ը նշում է բառի սահման։ ^Error ձևանմուշը համընկնում է միայն «Error»-ով սկսվող տողերի հետ, ինչը ճշգրիտ այն է, ինչ ձեզ պետք է մատյանները սկանավորելիս։

Խմբերը ձևանմուշի մի հատված փաթաթում են փակագծերում, թե՛ քանակիչ մի քանի նիշի կիրառելու համար, թե՛ համընկած տեքստը հետագա օգտագործման համար գրավելու համար։ (\d{4})-(\d{2})-(\d{2})-ում յուրաքանչյուր խումբ գրավում է ամսաթվի բաղադրիչ, որը կարող եք հետո դուրս հանել։ Այլընտրանքը՝ ուղիղ գծիկով, գործում է որպես «կամ». cat|dog|fish-ը համընկնում է երեք բառերից ցանկացածի հետ։

Ձևանմուշներ, որոնք իրապես գործածելու եք

Մի քանի կրկնվող առաջադրանք ընդգրկում է իրական աշխատանքի մեծ մասը։ Ինչ-որ էլ. հասցեին նման բան բռնելու համար [\w.+-]+@[\w-]+\.[\w.-]+-ը գործնական սկզբնակետ է. պաշտոնական սպեցիֆիկացիայի համաձայն ամբողջական էլ. հասցեի վավերացումը հայտնի է իր բարդությամբ, և ազատ ձևանմուշը սովորաբար ճիշտ ընտրություն է թեկնածուներ ընդգծելու, ոչ թե օգտատերերին մերժելու համար։

Թվերի համար \d+-ը բռնում է թվանշանների անընդմեջ շարքեր, մինչդեռ -?\d+(\.\d+)?-ը համընկնում է ընտրովի բացասականների և տասնորդականների հետ։ Առաջին և վերջին բացատները հեռացնելու համար համընկեցրեք ^\s+|\s+$-ը և փոխարինեք ոչնչով։ Կրկնվող բառեր գտնելու համար հետադարձ հղման \b(\w+)\s+\1\b ձևանմուշը համընկնում է բառի հետ, որին հաջորդում է իր ինքն իրեն, որտեղ \1-ը հղում է կատարում առաջին գրավված խմբին։

Ընտրված բառեր, որոնք փայլում են ոսկեգույն և ընդգծված են հոսող երկնագույն տեքստանման մասնիկների գետի ներսում մուգ նավի ֆոնի վրա
Կենդանի ընդգծումը ցույց է տալիս ճշգրիտ, թե ձեր տեքստի որ հատվածները են ձևանմուշին համընկնում։

Դրոշները փոխում են համընկման վարքագիծը

Դրոշները անջատիչներ են, որոնք ձևափոխում են ողջ ձևանմուշը։ Գլոբալ դրոշը (g) գտնում է ամեն համընկնում, ոչ թե կանգնում է առաջինից հետո, ինչը ձեզ պետք է, երբ ընդգծում եք բոլոր հանդիպումները։ Մեծատառ-փոքրատառ անտարբեր դրոշը (i) դարձնում է, որ error-ը համընկնում է «Error»-ի և «ERROR»-ի հետ էլ։ Բազմատողային դրոշը (m) փոխում է ^-ը և $-ը, որպեսզի դրանք համընկնեն ամեն տողի սկզբին և վերջին, ոչ միայն ողջ տեքստի, ինչը կարևոր է տող-առ-տող մատյանային աշխատանքի համար։ Այլ օգտակար դրոշների թվում են s-ը (dotall, թույլ է տալիս կետին համընկնել տողադարձերի հետ) և u-ն՝ ամբողջական Unicode մշակման համար։

Բարբառները մի փոքր տարբերվում են լեզվից լեզու

Regex-ը բարբառների ընտանիք է, ոչ թե մեկ ֆիքսված ստանդարտ։ JavaScript-ը, Python-ը, PCRE-ն (PHP), Java-ն, .NET-ը, Go-ն և Rust-ը համաձայն են վերևի հիմնական շարահյուսության շուրջ, բայց տարբերվում են եզրերում. lookbehind-ի աջակցություն, անվանված խմբերի շարահյուսություն ((?<name>...) ընդդեմ (?P<name>...)), Unicode հատկության էքրանավորումներ, և թե որ դրոշներն են գոյություն ունեն, ամեն ինչ տարբերվում է։ Ձևանմուշը, որն աշխատում է մի շարժիչում, կարող է պահանջել փոքրիկ ճշգրտում մյուսում, ուստի արժե փորձարկել այն բարբառի հետ, որով դուք իրապես գործարկում եք։ Երբ ձեր ձևանմուշը կարգավորված է, մեր մյուս ծրագրավորողի գործիքները և տեքստային գործիքները կարող են օգնել շրջակա աշխատանքին՝ մաքրելու, կոդավորելու և փոխակերպելու տվյալները, որ դուք հենց նոր համընկեցրիք։

Հաճախակի տրվող հարցեր

Իմ տեքստը ուղարկվու՞մ է սերվեր

Ոչ։ Regex Tester-ն ամբողջովին աշխատում է ձեր բրաուզերում։ Ձեր ձևանմուշը և նմուշային տեքստը մնում են ձեր սարքում և երբեք չեն վերբեռնվում, այնպես որ անվտանգ է տեղադրել զգայուն տվյալներ։

Regex-ի ո՞ր բարբառն է օգտագործում այս գործիքը

Այն օգտագործում է ձեր բրաուզերում ներկառուցված JavaScript regex շարժիչը։ Հիմնական շարահյուսությունը համապատասխանում է լեզուների մեծ մասից ձեզ ծանոթին, թեև որոշ առաջադեմ հատկություններ մի փոքր տարբերվում են PCRE-ից, Python-ից կամ .NET-ից։

Ի՞նչ տարբերություն կա ագահ և ծույլ համընկման միջև

Ըստ լռելյայն, քանակիչներն ագահ են և բռնում են որքան հնարավոր է շատ տեքստ։ Հարցական նշանն ավելացնելը դրանք դարձնում է ծույլ, ուստի դրանք բռնում են որքան հնարավոր է քիչ։ Օրինակ, կետ-աստղ ձևանմուշը ագահ է, մինչդեռ կետ-աստղ-հարցական ձևանմուշը ծույլ է։

Ինչպե՞ս համընկեցնեմ բառացի հատուկ նիշ

Էքրանավորեք այն հակադարձ շեղագծով։ Իրական կետ համընկեցնելու համար գրեք հակադարձ շեղագիծ-կետ։ Նույնը վերաբերում է այլ մետա նիշերի, ինչպիսիք են փակագծերը, ուղղանկյուն փակագծերը, գումարման նշանը և հարցական նշանը։

Ինչու՞ է իմ ձևանմուշը ոչինչի հետ չհամընկնում

Տարածված պատճառներն են՝ բացակայող գլոբալ դրոշ, ամրացումներ, որոնք ձևանմուշը ամրացնում են սխալ դիրքի, չէքրանավորված հատուկ նիշ, կամ ագահ քանակիչներ, որոնք գերազանցում են ձեր սպասած սահմանը։ Փորձարկեք կտոր առ կտոր՝ մեղավորին գտնելու համար։

Կարո՞ղ եմ գրավել համընկման մասերը

Այո։ Փաթաթեք ձևանմուշի հատվածը փակագծերում՝ գրավման խումբ ստեղծելու համար։ Յուրաքանչյուր խումբ առանձին զեկուցվում է, ինչը թույլ է տալիս արտահանել դաշտեր, ինչպիսիք են տարեթիվը, ամիսը և օրը ամսաթվից։