From ef7ba952e96e80c65e87f2ff4eb22bdd464edbc9 Mon Sep 17 00:00:00 2001 From: Ehs4n Date: Tue, 14 Mar 2023 12:51:50 +0330 Subject: [PATCH 1/8] translate until line-12 --- .../05-regexp-multiline-mode/article.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/9-regular-expressions/05-regexp-multiline-mode/article.md b/9-regular-expressions/05-regexp-multiline-mode/article.md index 82f4d781d..95f87aeec 100644 --- a/9-regular-expressions/05-regexp-multiline-mode/article.md +++ b/9-regular-expressions/05-regexp-multiline-mode/article.md @@ -1,14 +1,14 @@ -# Multiline mode of anchors ^ $, flag "m" +# حالت چند خطی anchors ^ $، پرچم "m" -The multiline mode is enabled by the flag `pattern:m`. +حالت چند خطی با پرچم `pattern:m` فعال می شود. -It only affects the behavior of `pattern:^` and `pattern:$`. +فقط بر رفتار `^:pattern` و `$:pattern` تأثیر می گذارد. -In the multiline mode they match not only at the beginning and the end of the string, but also at start/end of line. +در حالت چند خطی، نه تنها در ابتدا و انتهای رشته، بلکه در شروع/پایان خط نیز مطابقت دارند. -## Searching at line start ^ +## جستجو در شروع خط ^ -In the example below the text has multiple lines. The pattern `pattern:/^\d/gm` takes a digit from the beginning of each line: +در مثال زیر متن دارای چندین خط است. الگوی `pattern:/^\d/gm` از ابتدای هر خط یک رقم می گیرد: ```js run let str = `1st place: Winnie From 59b801abbca5c7307749e1a53de961f07ad556c3 Mon Sep 17 00:00:00 2001 From: Ehs4n Date: Tue, 14 Mar 2023 12:55:03 +0330 Subject: [PATCH 2/8] translate until line-42 --- 9-regular-expressions/05-regexp-multiline-mode/article.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/9-regular-expressions/05-regexp-multiline-mode/article.md b/9-regular-expressions/05-regexp-multiline-mode/article.md index 95f87aeec..203362a97 100644 --- a/9-regular-expressions/05-regexp-multiline-mode/article.md +++ b/9-regular-expressions/05-regexp-multiline-mode/article.md @@ -20,7 +20,7 @@ console.log( str.match(/^\d/gm) ); // 1, 2, 3 */!* ``` -Without the flag `pattern:m` only the first digit is matched: +بدون پرچم `pattern:m` تنها رقم اول مطابقت دارد: ```js run let str = `1st place: Winnie @@ -32,12 +32,12 @@ console.log( str.match(/^\d/g) ); // 1 */!* ``` -That's because by default a caret `pattern:^` only matches at the beginning of the text, and in the multiline mode -- at the start of any line. +دلیلش این است که به طور پیش‌ فرض یک `^:pattern` فقط در ابتدای متن و در حالت چند خطی - در ابتدای هر خط مطابقت دارد. ```smart -"Start of a line" formally means "immediately after a line break": the test `pattern:^` in multiline mode matches at all positions preceded by a newline character `\n`. +"شروع یک خط" به طور رسمی به معنای "بلافاصله پس از شکست خط" است: "^:pattern" آزمایشی در حالت چند خطی در همه موقعیت هایی که قبل از یک کاراکتر خط جدید "n\" قرار دارند مطابقت دارد. -And at the text start. +و در شروع متن. ``` ## Searching at line end $ From 63a8107c94319f127f0d00ca7ff7b36a7e0c38bd Mon Sep 17 00:00:00 2001 From: Ehs4n Date: Tue, 14 Mar 2023 12:59:41 +0330 Subject: [PATCH 3/8] translate until line-63 --- .../05-regexp-multiline-mode/article.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/9-regular-expressions/05-regexp-multiline-mode/article.md b/9-regular-expressions/05-regexp-multiline-mode/article.md index 203362a97..0e3ae93ca 100644 --- a/9-regular-expressions/05-regexp-multiline-mode/article.md +++ b/9-regular-expressions/05-regexp-multiline-mode/article.md @@ -40,11 +40,10 @@ console.log( str.match(/^\d/g) ); // 1 و در شروع متن. ``` -## Searching at line end $ +## جستجو در انتهای خط $ +علامت دلار `$:pattern` رفتار مشابهی دارد. -The dollar sign `pattern:$` behaves similarly. - -The regular expression `pattern:\d$` finds the last digit in every line +عبارت منظم `$pattern:\d` آخرین رقم را در هر خط پیدا می کند ```js run let str = `Winnie: 1 @@ -54,12 +53,12 @@ Eeyore: 3`; console.log( str.match(/\d$/gm) ); // 1,2,3 ``` -Without the flag `pattern:m`, the dollar `pattern:$` would only match the end of the whole text, so only the very last digit would be found. +بدون پرچم `pattern:m` و `$:pattern` دلاری فقط با انتهای کل متن مطابقت دارد، بنابراین فقط آخرین رقم پیدا می‌شود. ```smart -"End of a line" formally means "immediately before a line break": the test `pattern:$` in multiline mode matches at all positions succeeded by a newline character `\n`. +"پایان یک خط" به طور رسمی به معنای "بلافاصله قبل از شکست خط" است: تست "$:pattern" در حالت چند خطی در همه موقعیت‌هایی که توسط یک کاراکتر خط جدید "n\" جایگزین می‌شود، مطابقت دارد. -And at the text end. +و در انتهای متن. ``` ## Searching for \n instead of ^ $ From e6b6c3e121c6255d8b6f05cfab2b734d85b23ddf Mon Sep 17 00:00:00 2001 From: Ehs4n Date: Tue, 14 Mar 2023 13:02:21 +0330 Subject: [PATCH 4/8] translate until line-77 --- 9-regular-expressions/05-regexp-multiline-mode/article.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/9-regular-expressions/05-regexp-multiline-mode/article.md b/9-regular-expressions/05-regexp-multiline-mode/article.md index 0e3ae93ca..64eb08877 100644 --- a/9-regular-expressions/05-regexp-multiline-mode/article.md +++ b/9-regular-expressions/05-regexp-multiline-mode/article.md @@ -61,13 +61,13 @@ console.log( str.match(/\d$/gm) ); // 1,2,3 و در انتهای متن. ``` -## Searching for \n instead of ^ $ +## جستجو برای \n به جای ^ $ -To find a newline, we can use not only anchors `pattern:^` and `pattern:$`, but also the newline character `\n`. +برای یافتن یک خط جدید، می‌ توانیم نه تنها از لنگرهای `^:pattern` و `$:pattern`، بلکه از کاراکتر خط جدید `n\` استفاده کنیم. -What's the difference? Let's see an example. +تفاوت در چیست؟ بیایید یک مثال را ببینیم. -Here we search for `pattern:\d\n` instead of `pattern:\d$`: +در اینجا ما `pattern:\d\n` را به جای `$pattern:\d` جستجو می کنیم: ```js run let str = `Winnie: 1 From 04395b27802181645978661aa616cb6e399b9507 Mon Sep 17 00:00:00 2001 From: Ehs4n Date: Tue, 14 Mar 2023 13:06:14 +0330 Subject: [PATCH 5/8] finish article --- 9-regular-expressions/05-regexp-multiline-mode/article.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/9-regular-expressions/05-regexp-multiline-mode/article.md b/9-regular-expressions/05-regexp-multiline-mode/article.md index 64eb08877..00ca63b62 100644 --- a/9-regular-expressions/05-regexp-multiline-mode/article.md +++ b/9-regular-expressions/05-regexp-multiline-mode/article.md @@ -77,10 +77,10 @@ Eeyore: 3`; console.log( str.match(/\d\n/g) ); // 1\n,2\n ``` -As we can see, there are 2 matches instead of 3. +همانطور که می بینیم به جای 3 شباهت 2 شباهت وجود دارد. -That's because there's no newline after `subject:3` (there's text end though, so it matches `pattern:$`). +دلیلش این است که بعد از `3:subject` خط جدیدی وجود ندارد (البته پایان متن وجود دارد، بنابراین با `$:pattern` مطابقت دارد. -Another difference: now every match includes a newline character `match:\n`. Unlike the anchors `pattern:^` `pattern:$`, that only test the condition (start/end of a line), `\n` is a character, so it becomes a part of the result. +تفاوت دیگر: اکنون هر تطابق شامل یک کاراکتر خط جدید `match:\n` است. برخلاف `$:pattern` و `^:pattern` که فقط شرط (شروع/پایان یک خط) را آزمایش می‌کنند، `n\` یک کاراکتر است، بنابراین بخشی از نتیجه می‌ شود. -So, a `\n` in the pattern is used when we need newline characters in the result, while anchors are used to find something at the beginning/end of a line. +بنابراین، زمانی که به کاراکترهای خط جدید در نتیجه نیاز داشته باشیم، از `n\` در الگو استفاده می‌شود، در حالی که از لنگرها برای یافتن چیزی در ابتدا/پایان یک خط استفاده می‌شود. From d10f9f77b9b77efc8a801c21a7cd6ddc62c62ff3 Mon Sep 17 00:00:00 2001 From: Ehs4n Date: Tue, 14 Mar 2023 13:08:13 +0330 Subject: [PATCH 6/8] Update article.md --- 9-regular-expressions/05-regexp-multiline-mode/article.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/9-regular-expressions/05-regexp-multiline-mode/article.md b/9-regular-expressions/05-regexp-multiline-mode/article.md index 00ca63b62..9e4e802b8 100644 --- a/9-regular-expressions/05-regexp-multiline-mode/article.md +++ b/9-regular-expressions/05-regexp-multiline-mode/article.md @@ -53,10 +53,10 @@ Eeyore: 3`; console.log( str.match(/\d$/gm) ); // 1,2,3 ``` -بدون پرچم `pattern:m` و `$:pattern` دلاری فقط با انتهای کل متن مطابقت دارد، بنابراین فقط آخرین رقم پیدا می‌شود. +بدون پرچم `pattern:m` و `$:pattern` دلاری فقط با انتهای کل متن مطابقت دارد، بنابراین فقط آخرین رقم پیدا می‌ شود. ```smart -"پایان یک خط" به طور رسمی به معنای "بلافاصله قبل از شکست خط" است: تست "$:pattern" در حالت چند خطی در همه موقعیت‌هایی که توسط یک کاراکتر خط جدید "n\" جایگزین می‌شود، مطابقت دارد. +"پایان یک خط" به طور رسمی به معنای "بلافاصله قبل از شکست خط" است: تست "$:pattern" در حالت چند خطی در همه موقعیت‌هایی که توسط یک کاراکتر خط جدید "n\" جایگزین می‌ شود، مطابقت دارد. و در انتهای متن. ``` @@ -81,6 +81,6 @@ console.log( str.match(/\d\n/g) ); // 1\n,2\n دلیلش این است که بعد از `3:subject` خط جدیدی وجود ندارد (البته پایان متن وجود دارد، بنابراین با `$:pattern` مطابقت دارد. -تفاوت دیگر: اکنون هر تطابق شامل یک کاراکتر خط جدید `match:\n` است. برخلاف `$:pattern` و `^:pattern` که فقط شرط (شروع/پایان یک خط) را آزمایش می‌کنند، `n\` یک کاراکتر است، بنابراین بخشی از نتیجه می‌ شود. +تفاوت دیگر: اکنون هر تطابق شامل یک کاراکتر خط جدید `match:\n` است. برخلاف `$:pattern` و `^:pattern` که فقط شرط (شروع/پایان یک خط) را آزمایش می‌ کنند، `n\` یک کاراکتر است، بنابراین بخشی از نتیجه می‌ شود. -بنابراین، زمانی که به کاراکترهای خط جدید در نتیجه نیاز داشته باشیم، از `n\` در الگو استفاده می‌شود، در حالی که از لنگرها برای یافتن چیزی در ابتدا/پایان یک خط استفاده می‌شود. +بنابراین، زمانی که به کاراکترهای خط جدید در نتیجه نیاز داشته باشیم، از `n\` در الگو استفاده می‌ شود، در حالی که از لنگرها برای یافتن چیزی در ابتدا/پایان یک خط استفاده می‌ شود. From 25a0d98dc8463d9d47e5c669c11aceec81d47f7d Mon Sep 17 00:00:00 2001 From: Ehs4n Date: Wed, 15 Mar 2023 17:04:29 +0330 Subject: [PATCH 7/8] Apply suggestions from code review Co-authored-by: Mahdi Hashemi --- .../05-regexp-multiline-mode/article.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/9-regular-expressions/05-regexp-multiline-mode/article.md b/9-regular-expressions/05-regexp-multiline-mode/article.md index 9e4e802b8..2f94f21d7 100644 --- a/9-regular-expressions/05-regexp-multiline-mode/article.md +++ b/9-regular-expressions/05-regexp-multiline-mode/article.md @@ -1,6 +1,6 @@ -# حالت چند خطی anchors ^ $، پرچم "m" +# حالت چند خطی anchors ^ $، flag "m" -حالت چند خطی با پرچم `pattern:m` فعال می شود. +حالت چند خطی با flag `pattern:m` فعال می شود. فقط بر رفتار `^:pattern` و `$:pattern` تأثیر می گذارد. @@ -20,7 +20,7 @@ console.log( str.match(/^\d/gm) ); // 1, 2, 3 */!* ``` -بدون پرچم `pattern:m` تنها رقم اول مطابقت دارد: +بدون flag `pattern:m` تنها رقم اول مطابقت دارد: ```js run let str = `1st place: Winnie @@ -41,6 +41,7 @@ console.log( str.match(/^\d/g) ); // 1 ``` ## جستجو در انتهای خط $ + علامت دلار `$:pattern` رفتار مشابهی دارد. عبارت منظم `$pattern:\d` آخرین رقم را در هر خط پیدا می کند @@ -53,7 +54,7 @@ Eeyore: 3`; console.log( str.match(/\d$/gm) ); // 1,2,3 ``` -بدون پرچم `pattern:m` و `$:pattern` دلاری فقط با انتهای کل متن مطابقت دارد، بنابراین فقط آخرین رقم پیدا می‌ شود. +بدون flag `pattern:m` و `$:pattern` دلاری فقط با انتهای کل متن مطابقت دارد، بنابراین فقط آخرین رقم پیدا می‌ شود. ```smart "پایان یک خط" به طور رسمی به معنای "بلافاصله قبل از شکست خط" است: تست "$:pattern" در حالت چند خطی در همه موقعیت‌هایی که توسط یک کاراکتر خط جدید "n\" جایگزین می‌ شود، مطابقت دارد. From f9e167627be0b18a5084df57c8537df015b521e6 Mon Sep 17 00:00:00 2001 From: Ehs4n Date: Wed, 15 Mar 2023 20:39:46 +0330 Subject: [PATCH 8/8] Apply suggestions from code review Co-authored-by: Mahdi Hashemi --- .../05-regexp-multiline-mode/article.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/9-regular-expressions/05-regexp-multiline-mode/article.md b/9-regular-expressions/05-regexp-multiline-mode/article.md index 2f94f21d7..f10c2698f 100644 --- a/9-regular-expressions/05-regexp-multiline-mode/article.md +++ b/9-regular-expressions/05-regexp-multiline-mode/article.md @@ -35,7 +35,7 @@ console.log( str.match(/^\d/g) ); // 1 دلیلش این است که به طور پیش‌ فرض یک `^:pattern` فقط در ابتدای متن و در حالت چند خطی - در ابتدای هر خط مطابقت دارد. ```smart -"شروع یک خط" به طور رسمی به معنای "بلافاصله پس از شکست خط" است: "^:pattern" آزمایشی در حالت چند خطی در همه موقعیت هایی که قبل از یک کاراکتر خط جدید "n\" قرار دارند مطابقت دارد. +"شروع یک خط" به طور رسمی به معنای "بلافاصله پس از شکست خط" است: آزمایش "^:pattern" در حالت چند خطی با همه موقعیت هایی که بعد از یک کاراکترِ خط جدید `n\` قرار دارند مطابقت دارد. و در شروع متن. ``` @@ -54,17 +54,17 @@ Eeyore: 3`; console.log( str.match(/\d$/gm) ); // 1,2,3 ``` -بدون flag `pattern:m` و `$:pattern` دلاری فقط با انتهای کل متن مطابقت دارد، بنابراین فقط آخرین رقم پیدا می‌ شود. +بدون flag `pattern:m` و `$:pattern` علامت دلار فقط با انتهای کل متن مطابقت دارد، بنابراین فقط آخرین رقم پیدا می‌ شود. ```smart -"پایان یک خط" به طور رسمی به معنای "بلافاصله قبل از شکست خط" است: تست "$:pattern" در حالت چند خطی در همه موقعیت‌هایی که توسط یک کاراکتر خط جدید "n\" جایگزین می‌ شود، مطابقت دارد. +"پایان یک خط" به طور رسمی به معنای "بلافاصله قبل از شکست خط" است: تست "$:pattern" در حالت چند خطی با همه موقعیت‌هایی که قبل از یک کاراکتر خط جدید "n\" قرار دارند، مطابقت دارد. و در انتهای متن. ``` ## جستجو برای \n به جای ^ $ -برای یافتن یک خط جدید، می‌ توانیم نه تنها از لنگرهای `^:pattern` و `$:pattern`، بلکه از کاراکتر خط جدید `n\` استفاده کنیم. +برای یافتن یک خط جدید، می‌ توانیم نه تنها از anchorهای `^:pattern` و `$:pattern`، بلکه از کاراکتر خط جدید `n\` استفاده کنیم. تفاوت در چیست؟ بیایید یک مثال را ببینیم. @@ -84,4 +84,4 @@ console.log( str.match(/\d\n/g) ); // 1\n,2\n تفاوت دیگر: اکنون هر تطابق شامل یک کاراکتر خط جدید `match:\n` است. برخلاف `$:pattern` و `^:pattern` که فقط شرط (شروع/پایان یک خط) را آزمایش می‌ کنند، `n\` یک کاراکتر است، بنابراین بخشی از نتیجه می‌ شود. -بنابراین، زمانی که به کاراکترهای خط جدید در نتیجه نیاز داشته باشیم، از `n\` در الگو استفاده می‌ شود، در حالی که از لنگرها برای یافتن چیزی در ابتدا/پایان یک خط استفاده می‌ شود. +بنابراین، زمانی که به کاراکترهای خط جدید در نتیجه نیاز داشته باشیم، از `n\` در الگو استفاده می‌ شود، در حالی که از anchorها برای یافتن چیزی در ابتدا/پایان یک خط استفاده می‌ شود.