Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Greedy and lazy quantifiers#450

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@

The result is: `match:123 4`.
Результат: `match:123 4`.

First the lazy `pattern:\d+?`tries to take as little digits as it can, but it has to reach the space, so it takes `match:123`.
Для початку, лінивий `pattern:\d+?`намагається взяти мінімальну можливу кількість цифр, але він має дійти до пробілу, тож обирається `match:123`.

Then the second`\d+?`takes only one digit, because that's enough.
Далі, другий`\d+?`обере лише одну цифру, бо цього достатньо.
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
#A match for /d+? d+?/
#Збіг для /d+? d+?/

What's the match here?
Який результат ми отримаємо?

```js
alert( "123 456".match(/\d+? \d+?/g) ); // ?
Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
We need to find the beginning of the comment`match:<!--`,then everything till the end of `match:-->`.
Нам потрібно знайти початок коментарю`match:<!--`,та його зміст до самого кінця `match:-->`.

An acceptable variant is`pattern:<!--.*?-->` --the lazy quantifier makes the dot stop right before`match:-->`.We also need to add flag`pattern:s` for the dot to include newlines.
Прийнятним є варіант`pattern:<!--.*?-->` --лінивий квантифікатор зупиняє крапку (будь-який символ, за винятком символу нового рядку) прямо перед`match:-->`.Нам також треба додати прапорець`pattern:s`, аби крапка включала символи нового рядку.

Otherwise multiline comments won't be found:
Інакше коментарі на кілька рядків не знаходитимуться:

```js run
let regexp = /<!--.*?-->/gs;

let str = `... <!--My --comment
let str = `... <!--Мій --коментар
test --> .. <!----> ..
`;

alert( str.match(regexp) ); // '<!--My --comment \n test -->', '<!---->'
alert( str.match(regexp) ); // '<!--Мій --коментар \n test -->', '<!---->'
```
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
#Find HTMLcomments
#Знайти HTMLкоментарі

Find all HTMLcomments in the text:
Знайти всі HTMLкоментарі в тексті:

```js
let regexp = /your regexp/g;
let regexp = /ваш регулярний вираз/g;

let str = `... <!--My --comment
let str = `... <!--Мій --коментар
test --> .. <!----> ..
`;

alert( str.match(regexp) ); // '<!--My --comment \n test -->', '<!---->'
alert( str.match(regexp) ); // '<!--Мій --коментар \n test -->', '<!---->'
```
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@

The solution is `pattern:<[^<>]+>`.
Відповідь: `pattern:<[^<>]+>`.

```js run
let regexp = /<[^<>]+>/g;
Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
#Find HTMLtags
#Знайти HTMLтеги

Create a regular expression to find all (opening and closing) HTMLtags with their attributes.
Створити регулярний вираз для пошуку всіх (відкриваючих та закриваючих) HTMLтегів з їх атрибутами.

An example of use:
Приклад використання:

```js run
let regexp = /your regexp/g;
let regexp = /ваш регулярний вираз/g;

let str = '<> <a href="/"> <input type="radio" checked> <b>';

alert( str.match(regexp) ); // '<a href="/">', '<input type="radio" checked>', '<b>'
```

Here we assume that tag attributes may not contain`<`and `>` (inside quotes too), that simplifies things a bit.
Тут ми припускаємо, що атрибути тегу не містять`<`та `>` (внутрішні лапки) для спрощення задачі.
Loading

[8]ページ先頭

©2009-2025 Movatter.jp