From bc6b21c48c46be55de47e873ba78872c52d1d38e Mon Sep 17 00:00:00 2001 From: Saiful Date: Fri, 22 May 2020 14:23:03 +0600 Subject: [PATCH 1/2] wip regex-anchors --- .../04-regexp-anchors/article.md | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/9-regular-expressions/04-regexp-anchors/article.md b/9-regular-expressions/04-regexp-anchors/article.md index c34999ee5..eb9f7e709 100644 --- a/9-regular-expressions/04-regexp-anchors/article.md +++ b/9-regular-expressions/04-regexp-anchors/article.md @@ -1,34 +1,34 @@ -# Anchors: string start ^ and end $ +# অ্যাঙ্করস: স্ট্রিংয়ের শুরু ^ এবং শেষ $ -The caret `pattern:^` and dollar `pattern:$` characters have special meaning in a regexp. They are called "anchors". +রেগুলার এক্সপ্রেশনে ক্যারেট চিহ্ন `pattern:^` এবং ডলার চিহ্ন `pattern:$` এর বিশেষ অর্থ আছে। এদের বলা হয় "অ্যাঙ্করস"। -The caret `pattern:^` matches at the beginning of the text, and the dollar `pattern:$` -- at the end. +ক্যারেট চিহ্ন `pattern:^` বাক্যের শুরুতে এবং ডলার চিহ্ন `pattern:$` বাক্যের শেষে মিল খুঁজে। -For instance, let's test if the text starts with `Mary`: +উদাহরণস্বরূপ, চলুন বাক্যটি `Mary` দিয়ে শুরু হয়েছে কিনা দেখি: ```js run let str1 = "Mary had a little lamb"; alert( /^Mary/.test(str1) ); // true ``` -The pattern `pattern:^Mary` means: "string start and then Mary". +প্যাটার্ন `pattern:^Mary` দ্বারা বুঝায়: "স্ট্রিংয়ের শুরু Mary দিয়ে"। -Similar to this, we can test if the string ends with `snow` using `pattern:snow$`: +অনুরূপভাবে, আমরা বাক্যটি `snow` দ্বারা শেষ কিনা যাচাই করতে পারি এভাবে `pattern:snow$`: ```js run let str1 = "it's fleece was white as snow"; alert( /snow$/.test(str1) ); // true ``` -In these particular cases we could use string methods `startsWith/endsWith` instead. Regular expressions should be used for more complex tests. +বিশেষক্ষেত্রে স্ট্রিংয়ের শুরু এবং শেষ চেক করতে `startsWith/endsWith` মেথডদ্বয় ব্যবহার করতে পারি। এই ধরণের জটিল টেস্ট কেসের জন্য আমাদের রেগুলার এক্সপ্রেশন ব্যবহার করা উচিত। -## Testing for a full match +## পুরো মিলের টেস্টিং -Both anchors together `pattern:^...$` are often used to test whether or not a string fully matches the pattern. For instance, to check if the user input is in the right format. +উভয় অ্যাঙ্কর `pattern:^...$` প্রায় সময় ব্যবহার করা হয় কোন স্ট্রিং পুরো মিলেছে কিনা তা যাচাই করতে। উদাহরণস্বরূপ, ইউজারের ইনপুট প্যাটার্নটি সঠিকভাবে আছে কিনা তা যাচাই করতে। -Let's check whether or not a string is a time in `12:34` format. That is: two digits, then a colon, and then another two digits. +চলুন আমরা একটি সময়ের ফরম্যাট `12:34` এভাবে আছে কিনা যাচাই করি। প্রথমে দুটি ডিজিট তারপর একটি কোলন তারপর আবার দুটি ডিজিট। -In regular expressions language that's `pattern:\d\d:\d\d`: +রেগুলার এক্সপ্রেশনে এটি এভাবে লিখা হয় `pattern:\d\d:\d\d`: ```js run let goodInput = "12:34"; @@ -39,14 +39,14 @@ alert( regexp.test(goodInput) ); // true alert( regexp.test(badInput) ); // false ``` -Here the match for `pattern:\d\d:\d\d` must start exactly after the beginning of the text `pattern:^`, and the end `pattern:$` must immediately follow. +এখানে উপরোক্ত মিলের জন্য `pattern:\d\d:\d\d` এর শুরু আমাদের অবশ্যই `pattern:^` দিয়ে করতে হবে এবং `pattern:$` দ্বারা শেষ করতে হবে। -The whole string must be exactly in this format. If there's any deviation or an extra character, the result is `false`. +পুরো স্ট্রিংটি অবশ্যই এই ফরম্যাটে হতে হবে। যদি কোন ভুল ফরম্যাট বা অন্য কোন অতিরিক্ত ক্যারাক্টার থাকে তাহলে রেজাল্ট `false` হবে। -Anchors behave differently if flag `pattern:m` is present. We'll see that in the next article. +যদি `pattern:m` ফ্ল্যাগ থাকে তাহলে এর রেজাল্ট অন্যরকম হয়। পরবর্তী আর্টিকেলে আমরা এটি দেখব। -```smart header="Anchors have \"zero width\"" -Anchors `pattern:^` and `pattern:$` are tests. They have zero width. +```smart header="অ্যাঙ্করগুলো জিরো উইডথ\"" +অ্যাঙ্কর `pattern:^` এবং `pattern:$` টেস্টের সময় জিরো উইডথ। -In other words, they do not match a character, but rather force the regexp engine to check the condition (text start/end). -``` +অন্য অর্থে বলা যায়, এরা কোন ক্যারাক্টারের সাথে মিলে না কিন্তু এর সাহায্যে রেগুলার এক্সপ্রেশনে (টেক্সটের শুরু/শেষ) যাচাই করতে পারি। +``` \ No newline at end of file From eb5a6531ff579c4fec6abf307a7195e0eb168e64 Mon Sep 17 00:00:00 2001 From: Saiful Date: Fri, 22 May 2020 14:41:07 +0600 Subject: [PATCH 2/2] task and solution --- .../04-regexp-anchors/1-start-end/solution.md | 6 +++--- 9-regular-expressions/04-regexp-anchors/1-start-end/task.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/9-regular-expressions/04-regexp-anchors/1-start-end/solution.md b/9-regular-expressions/04-regexp-anchors/1-start-end/solution.md index 702f992d7..7bd2e6d37 100644 --- a/9-regular-expressions/04-regexp-anchors/1-start-end/solution.md +++ b/9-regular-expressions/04-regexp-anchors/1-start-end/solution.md @@ -1,5 +1,5 @@ -An empty string is the only match: it starts and immediately finishes. +শুধু এম্পটি স্ট্রিং মিলবে: কেননা এটি শুরু হয়ে অবিলম্বে শেষ হয়ে যায়। -The task once again demonstrates that anchors are not characters, but tests. +টাস্কটি দেখায় যে অ্যাঙ্করগুলো ক্যারাক্টার নয়, তবে টেস্ট। -The string is empty `""`. The engine first matches the `pattern:^` (input start), yes it's there, and then immediately the end `pattern:$`, it's here too. So there's a match. +এম্পটি স্ট্রিং `""`। Regexp ইঞ্জিন প্রথমে `pattern:^` (ইনপুটের শুরুতে) মিলটি খুঁজে, হ্যাঁ এটি মিলে, তারপর এর শেষও খুঁজে `pattern:$`, এটিও মিলে। তাই শুধু খালি স্ট্রিংয়ের সাথে প্যাটার্নটি মিলে। diff --git a/9-regular-expressions/04-regexp-anchors/1-start-end/task.md b/9-regular-expressions/04-regexp-anchors/1-start-end/task.md index abdfec938..9745e8b7c 100644 --- a/9-regular-expressions/04-regexp-anchors/1-start-end/task.md +++ b/9-regular-expressions/04-regexp-anchors/1-start-end/task.md @@ -1,3 +1,3 @@ # Regexp ^$ -Which string matches the pattern `pattern:^$`? +কোন স্ট্রিংটি প্যাটার্নটির `pattern:^$` সাথে মিলবে?