DevToys Web Pro iconDevToys Web Proብሎግ
ደረጃ ይስጡን፦
የአሳሽ ቅጥያን ይሞክሩ፦

መደበኛ አገላለጽ ሞካሪ

ቅንብሮች

ንድፍ

የሙከራ ጽሑፍ

  • ተዛማጆች

    ተዛማጆችን ለማየት ንድፍ ያስገቡ

    ተካ

    ማጣቀሻ

    የቁምፊ ክፍሎች

    .ከአዲስ መስመር በስተቀር ማንኛውም ቁምፊ
    [abc]a፣ b ወይም c አዛምድ
    [^abc]a፣ b፣ c በስተቀር ማንኛውንም ነገር አዛምድ
    [a-z]የቁምፊ ክልል (a እስከ z)
    \dአሃዝ (0-9)
    \Dአሃዝ ያልሆነ
    \wየቃል ቁምፊ [a-zA-Z0-9_]
    \Wየቃል ቁምፊ ያልሆነ
    \sነጭ ቦታ
    \Sነጭ ቦታ ያልሆነ

    አንከሮች

    ^የሕብረቁምፊ/መስመር መጀመሪያ
    $የሕብረቁምፊ/መስመር መጨረሻ
    \bየቃል ድንበር
    \Bየቃል ድንበር ያልሆነ

    የተሸሸጉ ቁምፊዎች

    \tታብ
    \nአዲስ መስመር
    \rካሪጅ ሪተርን
    \0ኑል ቁምፊ
    \xhhሄክስ ቁምፊ (ለምሳሌ \xFF)
    \uhhhhዩኒኮድ ቁምፊ

    ቡድኖች እና ማጣቀሻዎች

    (abc)የሚይዝ ቡድን
    (?:abc)የማይዝ ቡድን
    (?<name>abc)ስም ያለው የሚይዝ ቡድን
    \1ወደ ቡድን 1 የኋላ-ማጣቀሻ
    \k<name>ወደ ስም ያለው ቡድን የኋላ-ማጣቀሻ

    ሉክአራውንድ

    (?=abc)አዎንታዊ ሉክአሄድ
    (?!abc)አሉታዊ ሉክአሄድ
    (?<=abc)አዎንታዊ ሉክቢሃይንድ
    (?<!abc)አሉታዊ ሉክቢሃይንድ

    ብዛት መግለጫዎች እና አማራጭ

    a*0 ወይም ከዚያ በላይ (ግሪዲ)
    a+1 ወይም ከዚያ በላይ (ግሪዲ)
    a?0 ወይም 1 (አማራጭ)
    a{n}በትክክል n ጊዜ
    a{n,}n ወይም ከዚያ በላይ ጊዜ
    a{n,m}በ n እና m መካከል ጊዜ
    a*?0 ወይም ከዚያ በላይ (ሌዚ)
    a+?1 ወይም ከዚያ በላይ (ሌዚ)
    a|ba ወይም b አዛምድ

    መተካት

    $1, $2የተያዘ የቡድን ይዘት
    $&ሙሉ ተዛማጅ
    $`ከተዛማጅ በፊት
    $'ከተዛማጅ በኋላ
    $$ቃል-በቃል $ ቁምፊ
    ቴክኒካዊ ዝርዝሮች

    የRegEx ሞካሪው እንዴት እንደሚሰራ

    መሣሪያው ምን ያደርጋል

    የregex ሞካሪው መደበኛ አገላለጾችን (regular expressions) በናሙና ጽሑፍ ላይ በቀጥታ ጊዜ ለመሞከር ያስችልዎታል። እንደ regex ማስተካከያ (debugger) እና regex ማረጋገጫ (validator) ሁለቱም ይሰራል፣ አበልጻጊዎች የንድፍ መዛመድ አገላለጾችን ለመገንባት፣ ለመሞከር እና ለማሻሻል ይረዳቸዋል። ይህ ሞካሪ የJavaScript RegExp ሞተር (ECMAScript) ይጠቀማል፣ ስለዚህ አገባቡ ከPCRE፣ .NET ወይም Java regex ሞተሮች ሊለይ ይችላል። በመስመር ላይ regex ማሞከር ሲፈልጉ ይህ መሣሪያ ሁሉንም መዛመዶች፣ የመያዣ ቡድኖች (capture groups) እና መተካቶችን ያሳያል። መሣሪያው የJavaScript regex አገባብን ጨምሮ የJavaScript regex ፍላጎችን (g, i, m, s, u) ይደግፋል፦ አለምአቀፍ (g)፣ ከፊደል መጠን ነጻ (i)፣ ብዙ መስመር (m)፣ dotAll (s) እና unicode (u)። በሙከራ ሕብረቁምፊ ውስጥ መዛመዶችን ያብራራል፣ የመያዣ ቡድኖችን ያሳያል፣ እና regex ጽሑፍን እንዴት እንደሚቀይር ለማየት የፈልግ-እና-ተካ (find-and-replace) ስራዎችን ማከናወን ይችላል።

    የተለመዱ የገንቢ አጠቃቀም ሁኔታዎች

    አበልጻጊዎች የregex ሞካሪዎችን የማረጋገጫ ንድፎችን ሲገነቡ፣ የሎግ ፋይሎችን ሲተነትኑ ወይም ከሕብረቁምፊዎች ውስጥ ውሂብ ሲያወጡ ይጠቀማሉ። የregexp ንድፎችን መሞከር የጠርዝ ሁኔታዎችን ለመለየት፣ ውስብስብ አገላለጾችን ለማስተካከያ (debug) እና የተለያዩ ፍላጎች በመዛመድ ባህሪ ላይ እንዴት እንደሚጽናኑ ለመረዳት ይረዳል። ብዙ አበልጻጊዎች ኢሜይል አድራሻዎችን፣ የስልክ ቁጥሮችን፣ URLs ወይም ሌሎች የተዋቀሩ የውሂብ ቅርጾችን ለማረጋገጥ የregex ሞካሪዎችን ይጠቀማሉ። መሣሪያው በቅጽ ማረጋገጫ፣ የሎግ ትንተና ወይም የጽሑፍ ማቀናበር ስራዎች ላይ ሲሰሩ ጠቃሚ ነው። Regex ሞካሪዎች መደበኛ አገላለጾችን ሲማሩ ደግሞ ይረዳሉ፣ ምክንያቱም ንድፎች በmatch iteration እና ቡድን ማውጣት በኩል ጽሑፍን እንዴት እንደሚዛመዱ ያሳያሉ። ብዙ መስመር ጽሑፍ ወይም ልዩ ቁምፊዎች ጋር regexp ሲሞክሩ መሣሪያው ትክክለኛው ምን እንደሚዛመድ እና ለምን እንደሚዛመድ በግልጽ እንዲታይ ይረዳል።

    የውሂብ ቅርጾች፣ አይነቶች ወይም ልዩነቶች

    Regex ሞካሪዎች በPerl-ቅጥ regex ላይ የተመሠረተ የJavaScript መደበኛ አገላለጽ አገባብን ያስተናግዳሉ፣ ከሌሎች regex ሞተሮች ጋር አንዳንድ ልዩነቶች ቢኖሩም። መሣሪያው እንደ \d ለአሃዞች፣ \w ለቃላዊ ቁምፊዎች እና \s ለነጭ ቦታ (whitespace) ያሉ የቁምፊ ክፍሎችን ይደግፋል። አንኮሮችን ( ^, $)፣ መጠን መግለጫዎችን (quantifiers) (*, +, ?) እና አማራጭነት (alternation) (|) ያስተናግዳል። የmultiline ፍላግ ^ እና $ እንዴት እንደሚዛመዱ ይጽናናል፣ የdotAll ፍላግ ደግሞ . አዲስ መስመር ቁምፊዎችን እንዲዛመድ ያደርጋል። የregex አዲስ መስመር ባህሪን መረዳት ለብዙ መስመር ጽሑፍ ማቀናበር አስፈላጊ ነው። ለምሳሌ፣ /\d-\d-\d/ ያለ ንድፍ በስልክ ቁጥር ሕብረቁምፊ ላይ ሲሞከር የትኞቹ ክፍሎች እንደሚዛመዱ በግልጽ ያሳያል። የregex አዲስ መስመር አስተናጋጅነት በፍላጎች ላይ ይመሰረታል፤ ^foo.*bar$ ያለ ንድፍ "foo\nbar" ን የdotAll ፍላግ (s) ሲኖር ብቻ ይዛመዳል፣ ምክንያቱም . በነባሪ አዲስ መስመሮችን አይዛመድም። ከregex አዲስ መስመር ንድፎች ጋር ሲሰሩ ትክክለኛ አዲስ መስመሮችን ለመዛመድ \n ይጠቀሙ፣ ወይም ለWindows መስመር መጨረሻዎች \r\n ይጠቀሙ።

    የተለመዱ ስህተቶች እና የጠርዝ ሁኔታዎች

    አንድ የተለመደ ስህተት የJavaScript regex እንደ መለያ (delimiter) የሚጠቀምባቸው ወደፊት ስላሾች (/) እንጂ ጥቅሶች እንዳልሆኑ መርሳት ነው። ሌላ ጉዳይ የglobal ፍላግ በመዛመድ ላይ እንዴት እንደሚጽናና መሳሳት ነው፤ እሱ ካልነበረ የመጀመሪያው መዛመድ ብቻ ይመለሳል፣ ነገር ግን ካለ ሁሉም መዛመዶች ይገኛሉ። የregex አዲስ መስመር አስተናጋጅነት አስቸጋሪ ሊሆን ይችላል፤ . ቁምፊው በነባሪ አዲስ መስመሮችን አይዛመድም እስከ dotAll ፍላግ እስኪጠቀሙ ድረስ። በቁምፊ ክፍል ውስጥ አሉታዊነት [^...] ግራ ሊያጋባ ይችላል፣ ምክንያቱም በክፍሉ ውስጥ ያልሆነ ማንኛውንም ቁምፊ ይዛመዳል። ጉልበተኛ (greedy) እና ሰነፍ (lazy) መጠን መግለጫዎች ( * በተቃራኒ *?) በተለየ መንገድ ይሰራሉ እና ያልተጠበቁ ውጤቶችን ሊያመጡ ይችላሉ። የlookahead እና lookbehind ማረጋገጫዎች ( (?=...), (?&lt;=...)) ኃይለኛ ናቸው ነገር ግን ለማስተካከያ አስቸጋሪ ሊሆኑ ይችላሉ። አበልጻጊዎች የregex ንድፎችን ባዶ ሕብረቁምፊዎች፣ ልዩ ቁምፊዎች እና unicode ቁምፊዎች ያሉ የጠርዝ ሁኔታዎችን ጨምሮ በተለያዩ ግቤቶች ላይ መሞከር አለባቸው።

    ይህን መሣሪያ ከኮድ ጋር መቼ መጠቀም እንደሚገባ

    ይህን የregex ሞካሪ ለፈጣን ንድፍ እድገት፣ ውስብስብ አገላለጾችን ለማስተካከያ (debugging) ወይም የመደበኛ አገላለጽ አገባብን ለመማር ይጠቀሙ። በተለይ ያልተለመደ አገባብ ወይም ውስብስብ ንድፎች ጋር ሲሰሩ ንድፎችን በኮድ ውስጥ ከመተግበር በፊት ለመሞከር ተስማሚ ነው። የሚታይ ግብረመልስ ንድፍ ለምን እንደሚዛመድ ወይም ለምን እንደማይዛመድ ለመለየት ይረዳል። ለምርት ኮድ ውስጥ በIDE ውስጥ የተዋሃዱ ወይም በunit testing ፍሬምወርኮች ውስጥ የተካተቱ የregex ሞካሪዎችን ይጠቀሙ፣ እነሱም ንድፎችን እንደ የሙከራ ስብስብዎ ክፍል ማረጋገጥ ይችላሉ። የአሳሽ መሣሪያዎች በመስተጋብራዊ እድገት እና ትምህርት ይበልጣሉ፣ ነገር ግን በኮድ ላይ የተመሠረቱ መፍትሄዎች ራስ-ሰርነት፣ ከCI/CD ፓይፕላይኖች ጋር ውህደት እና ንድፎችን በትልቅ ውሂብ ስብስቦች ላይ ለመሞከር ችሎታ ይሰጣሉ። ለውስብስብ መተግበሪያዎች ራስ-ሰር የregex ሙከራ ንድፎች በተለያዩ ግቤቶች እና የጠርዝ ሁኔታዎች ላይ ትክክል እንደሚሰሩ ያረጋግጣል።