Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по регулярным выражениям. (https://javascript.ru/forum/misc/80986-vopros-po-regulyarnym-vyrazheniyam.html)

Biotoxsin 07.09.2020 16:16

Вопрос по регулярным выражениям.
 
Здравствуйте!

Подскажите как можно найти определённые символы и одновременно исключить некоторые из них из результата выдачи?

К примеру:

start-10 stop-11 test-543

И из этого найти только последнее значение в виде цифр "543" при этом не задавая значение самих цифр.

Предполагал что можно найти значение по слову "test-" после чего удалить его из выдачи, оставив только цифры. Но не знаю как сделать это одним выражением.

Подскажете?

laimas 07.09.2020 16:19

var str = 'start-10 stop-11 test-543';
alert(str.match(/\d+$/))


https://developer.mozilla.org/ru/doc...Objects/RegExp

Biotoxsin 07.09.2020 17:48

Цитата:

Сообщение от laimas (Сообщение 528620)
var str = 'start-10 stop-11 test-543';
alert(str.match(/\d+$/))


https://developer.mozilla.org/ru/doc...Objects/RegExp

Ну да, зачем читать вопрос полностью. Я же спрашивал о том как это сделать если искать по слову? Ясное дело, давайте возьмём последние цифры.

Если изменить постановку, как теперь взять значение "test" ?

start-10 test-543 stop-11

Не подходит ваш способ.

laimas 07.09.2020 18:14

Это не мой способ, это работа регулярного выражения, а хотите получать нужное, увы, но читать и изучать придется.

Цитата:

Сообщение от Biotoxsin
И из этого найти только последнее значение в виде цифр "543"

Запустите код, он и выводит 543. Если нужно искать цифры перед которым конкретный текст, то нужно добавить в шаблон выражения это условие - по ссылке все описано, почему бы самому не попробовать его составить?

рони 07.09.2020 18:15

Biotoxsin,
var str = 'start-10 test-543 stop-11';
alert(str.match(/(?<=test-)\d+/));

Biotoxsin 07.09.2020 19:44

Цитата:

Сообщение от laimas (Сообщение 528620)
var str = 'start-10 stop-11 test-543';
alert(str.match(/\d+$/))


https://developer.mozilla.org/ru/doc...Objects/RegExp

Цитата:

Сообщение от laimas (Сообщение 528624)
Это не мой способ, это работа регулярного выражения, а хотите получать нужное, увы, но читать и изучать придется.



Запустите код, он и выводит 543. Если нужно искать цифры перед которым конкретный текст, то нужно добавить в шаблон выражения это условие - по ссылке все описано, почему бы самому не попробовать его составить?

Знаете, в эту тему приходят за помощью и её оказанием.
Вы же приводите код который не будет работать во всех случаях(только в одном) и кидаете ссылку на мануал. Если вы не хотите помогать и вам не нужна помощь, зачем вы приходите в этот раздел?

p.s и уж если зашёл разговор, то я читал там всё.

Biotoxsin 07.09.2020 19:44

Цитата:

Сообщение от рони (Сообщение 528625)
Biotoxsin,
var str = 'start-10 test-543 stop-11';
alert(str.match(/(?<=test-)\d+/));

Много благодарен =)

laimas 07.09.2020 20:20

Цитата:

Сообщение от Biotoxsin
Знаете, в эту тему приходят за помощью и её оказанием.

Но не за подсказками.
Цитата:

Сообщение от Biotoxsin
уж если зашёл разговор, то я читал там всё.

Нужно не просто читать, а изучать, пробуя. Или думаете, что только подсказками прожить? Ну просто надоест всем и не станут на вас обращать внимание. Такое точно тут есть, так что без претензий потом.
Цитата:

Сообщение от Biotoxsin
Вы же приводите код который не будет работать во всех случаях(только в одном) и кидаете ссылку на мануал.

Это чьи слова
"start-10 stop-11 test-543
И из этого найти только последнее значение в виде цифр "543"
?

А это "Предполагал что можно найти значение по слову "test-"" можно трактовать как попытку, а не то что вам нужно после них. Так что учитесь еще и ставить грамотно вопросы.

И кстати, то что вам в итоге показали, это лишь как показать, но прямо с полученным работать так нельзя. Ну вы же читали все там, уж с этим тогда и сами разберетесь.


Часовой пояс GMT +3, время: 03:03.