Skip to content

Commit c4c0c00

Browse files
committed
task 2
1 parent 99cc197 commit c4c0c00

File tree

2 files changed

+21
-14
lines changed
  • 9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head

2 files changed

+21
-14
lines changed
Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1+
`<body>` ট্যাগ ভিতরে নতুন ট্যাগ স্থাপনের জন্য, আমাদের প্রথমে এটি খুঁজে বের করতে হবে। এজন্য আমরা এই রেগুলার এক্সপ্রেশনটি ব্যবহার করব `pattern:<body.*>`
12

2-
Для того, чтобы вставить после тега `<body>`, нужно вначале его найти. Будем использовать регулярное выражение `pattern:<body.*>`.
3+
এই টাস্কের জন্য আমাদের `<body>` ট্যাগকে প্রতিস্থাপিত করা লাগবে না। আমাদের শুধুমাত্র ট্যাক্সটিকে সংযোগ করতে হবে।
34

4-
Далее, нам нужно оставить сам тег `<body>` на месте и добавить текст после него.
5+
এখানে দেখুন আমরা কিভাবে এটি করতে পারি:
56

6-
Это можно сделать вот так:
77
```js run
88
let str = '...<body style="...">...';
99
str = str.replace(/<body.*>/, '$&<h1>Hello</h1>');
1010

1111
alert(str); // ...<body style="..."><h1>Hello</h1>...
1212
```
1313

14-
В строке замены `$&` означает само совпадение, то есть мы заменяем `pattern:<body.*>` заменяется на самого себя плюс `<h1>Hello</h1>`.
14+
রিপ্লেসমেন্ট স্ট্রিংয়ে `$&` দ্বারা বুঝায় মিলের কন্টেন্টটি অর্থাৎ সোর্সের ট্যাক্সটি `pattern:<body.*>`। মিলকৃত কন্টেন্টটি অতঃপর `<h1>Hello</h1>`
1515

16-
Альтернативный вариант - использовать ретроспективную проверку:
16+
বিকল্প আরেকটি হতে পারে লুকবিহাইন্ড:
1717

1818
```js run
1919
let str = '...<body style="...">...';
@@ -22,8 +22,15 @@ str = str.replace(/(?<=<body.*>)/, `<h1>Hello</h1>`);
2222
alert(str); // ...<body style="..."><h1>Hello</h1>...
2323
```
2424

25-
Такое регулярное выражение на каждой позиции будет проверять, не идёт ли прямо перед ней `pattern:<body.*>`. Если да - совпадение найдено. Но сам тег `pattern:<body.*>` в совпадение не входит, он только участвует в проверке. А других символов после проверки в нём нет, так что текст совпадения будет пустым.
25+
এখানে দেখতে পাচ্ছি, এখানে রেগুলার এক্সপ্রেশনে শুধুমাত্র লুকবিহাইন্ডের অংশটি আছে।
2626

27-
Происходит замена "пустой строки", перед которой идёт `pattern:<body.*>` на `<h1>Hello</h1>`. Что, как раз, и есть вставка этой строки после `<body>`.
27+
এটি এভাবে কাজ করছে:
28+
- টেক্সটের প্রতিটি পজিশনে।
29+
- যাচাই করছে পূর্বে `pattern:<body.*>` আছে কিনা।
30+
- যদি থাকে তাহলে আমাদের মিলটি পাব।
2831

29-
P.S. Этому регулярному выражению не помешают флаги: `pattern:/<body.*>/si`, чтобы в "точку" входил перевод строки (тег может занимать несколько строк), а также чтобы теги в другом регистре типа `match:<BODY>` тоже находились.
32+
`pattern:<body.*>` ট্যাগটি রিটার্ন করবে না। সুতরাং রেজাল্ট হবে এম্পটি স্ট্রিং, কিন্ত ম্যাচটির অবস্থান হবে `pattern:<body.*>` এর পরের অবস্থানটি।
33+
34+
সুতরা আমরা "empty line" টিকে রিপ্লেস করব `<h1>Hello</h1>` দ্বারা যার পূর্বে `pattern:<body.*>` আছে। সুতরাং নতুন ট্যাগটি হবে `<body>` এর পর।
35+
36+
লক্ষ্যনীয় রেগুলার এক্সপ্রেশন ফ্ল্যাগ, যেমন `pattern:s` এবং `pattern:i` দরকারী: `pattern:/<body.*>/si``pattern:s` ফ্ল্যাগটি `pattern:.` দ্বারা নিউলাইন ক্যারাক্টারকেও বুঝায়, এবং `pattern:i` ফ্ল্যাগ কেস-ইন্সেসিটিভ বুঝায় `pattern:<body>` এটি `match:<BODY>` এর সাথেও ম্যাচ করবে।

9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/task.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
# Вставьте после фрагмента
1+
# Body এর ভিতরে H1 ট্যাগ
22

3-
Есть строка с HTML-документом.
3+
HTML Document এর একটি স্ট্রিং আছে।
44

5-
Вставьте после тега `<body>` (у него могут быть атрибуты) строку `<h1>Hello</h1>`.
5+
একটি রেগুলার এক্সপ্রেশন লিখুন যার মাধ্যমে `<body>` ট্যাগ এর পর `<h1>Hello</h1>` কে সংযোগ করতে পারি। ট্যাগটির একাধিক অ্যাট্রিবিউট থাকতে পারে।
66

7-
Например:
7+
উদাহরণস্বরূপ:
88

99
```js
10-
let regexp = /ваше регулярное выражение/;
10+
let regexp = /আপনার প্যাটার্ন/;
1111

1212
let str = `
1313
<html>
@@ -20,7 +20,7 @@ let str = `
2020
str = str.replace(regexp, `<h1>Hello</h1>`);
2121
```
2222

23-
После этого значение `str`:
23+
এর পর `str` এর মান হবে:
2424
```html
2525
<html>
2626
<body style="height: 200px"><h1>Hello</h1>

0 commit comments

Comments
 (0)