Вход

Просмотр полной версии : Регулярное выражение вы тащить нужную информацию


Laptap
23.12.2016, 12:15
Здравствуйте уважаемые!

Нужна помощь вот в этом:

Есть например такой текст:
Этот текст написан 23 числа в пятницу, 11:42, 23 декабря 2016.

из этого текста нужно регуляркой оставить только это: 11:42

вот что у меня получился за код:

$(this).text().replace(/([^\d\:\d+])/, '');

но смысл в том что этот паттерн не работает, те кто хорошо соображает в данном вопросе подскажите пожалуйста решение

как видите я пытался исключить но он не срабатывает почему-то.

Malleys
23.12.2016, 12:45
/(\d{1,2}\:\d{1,2})/

Находит только время http://regexr.com/3eug6

Laptap
23.12.2016, 13:44
Благодарю! работает!

а как мне также вытащить дату: 23 декабря 2016 ?

попробовал вот так написать не получается:

/(\d{1,2}\s\[A-Za-zА-Яа-яЁё]{1,}\s\d{1,4})/g

Laptap
23.12.2016, 13:45
когда отправлял заметил лишний \

теперь работает!

нормально я сделал? все верно красиво?

Laptap
23.12.2016, 13:49
вот финальный для даты нормально?

/(\d{1,2}[A-Za-zА-Яа-яЁё\s]+\d{1,4})/g

ksa
23.12.2016, 14:06
вот финальный для даты нормально?
Некая модификация...

var reg=/\d\d?\s[^\d\s]+\s\d\d(\d\d)?/g;
var str='23 декабря 2016';
alert(str.match(reg));
str='5 марта 16';
alert(str.match(reg));

Laptap
23.12.2016, 14:56
Благодарю Вас за оперативную помощь!

Laptap
25.12.2016, 18:27
Подскажите пожалуйста а как будет обстоять дела в такой ситуации

вот такая строка:
Викинги: 174 (47%)


сначала мне нужно получить номер 174, а потом 47 (без процентов и скобочек)

вообщем 1 раз получаю первое число
второй раз получаю второе число


я пробовал вот так обратиться ко второму числу
/(\d{1,3}\%)/g
но как видите я подсказал ему что около процент он его и нашел, но минус в том что потом я подставляю эти данные полученные и они с процентами!

рони
25.12.2016, 18:59
Laptap,
/\d+/g

Laptap
25.12.2016, 19:05
с такой регуляркой я получаю 2 значения сразу
а как мне получить сначала одной регуляркой только первое число а потом второй регуляркой второе число?

Laptap
25.12.2016, 19:09
я вспомнил я читал про регулярные выражения но просто опыта еще не слишком много

вернее всего мне нужно поставить первое вхождение и второе вхождение так?

рони
25.12.2016, 19:13
Laptap,
:-? что на входе, что на выходе?

Laptap
25.12.2016, 19:22
вот как я написал ранее у меня есть строка мне просто нужно первой регуляркой вытащить первое значение из цифр
а второй регуляркой вротое значение из цифр

рони
25.12.2016, 19:25
Laptap,
и чем предложенный вариант плох?

Laptap
25.12.2016, 19:27
если я предложенным вариантом использую то получается когда я получаю значение то там их два через запятую


а мне нужно чтобы я с каждого обращения получал то или то значени

Laptap
25.12.2016, 19:29
var digit_one = $('#myblock').data('str').match(/\d+/g);
alert(digit_one);
var digit_two = $('#myblock').data('str').match(/\d+/g);
alert(digit_two);

рони
25.12.2016, 19:33
:-?
var digit_one = $('#myblock').data('str').match(/\d+/g)[0];
alert(digit_one);
var digit_two = $('#myblock').data('str').match(/\d+/g)[1];
alert(digit_two);

Laptap
25.12.2016, 19:40
я правильно понимаю указав индекс и все так просто? прсото я незнал этого

а почему смайлик не уверенности?