X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Помогите с регуляркой!, Регулярное выражение для
Loader
сообщение 2014-03-11, 18:57
Сообщение #1
Профессионал
Иконка группы

Группа: Eleanor user
Сообщений: 1 161
Регистрация: 2010-04-19

Репутация:   нет  
Всего: нет


Всем привет!

Задача состоит в следующем:
с сервера получаем ответ вида {"result":"1","url":"http:\/\/f-bit.ru\/385157","delete_url":"0"}
Так вот мне нужно извлечь эти шесть цифр 385157 (они каждый раз разные). Это нужно сделать для Squirrel.

У меня было пару вариантов, но они не идут:

function regex_simple(data,regStr,start)
{
	local ex = regexp(regStr);
	local res = ex.capture(data, start);
	local resultStr = "";
	if(res != null){	
		resultStr = data.slice(res[1].begin, res[1].end);
	}
	return resultStr;
}


local fileID = regex_simple(data,"http:\\/\\/f-bit\\.ru\\/([0-9]+)",0);


local fileID = regex_simple(data,"http:\\/\\/f-bit\\.ru\\/(\\d+)",0);


Перейти в начало страницы
+Цитировать сообщение
wormen
сообщение 2014-03-12, 0:46
Сообщение #2
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 800
Регистрация: 2012-09-13

Репутация:   нет  
Всего: нет


тут у вас регулярка немного неправильно написана+ ненужно все данные передавать для обработки регуляркой, а только URL
а получить цифры, можно например так

Number("a4r t 4r43 43a b345b 123 cc gaeg4".replace(/\D+/g,""))

возможно кто-то предложит и другие варианты
Перейти в начало страницы
+Цитировать сообщение
Loader
сообщение 2014-03-12, 5:49
Сообщение #3
Профессионал
Иконка группы

Группа: Eleanor user
Сообщений: 1 161
Регистрация: 2010-04-19

Репутация:   нет  
Всего: нет


Цитата (wormen @ 2024-03-28 14:01)
тут у вас регулярка немного неправильно написана


А как правильно? Подскажите. Мне надо именно так.
Перейти в начало страницы
+Цитировать сообщение
wormen
сообщение 2014-03-12, 7:16
Сообщение #4
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 800
Регистрация: 2012-09-13

Репутация:   нет  
Всего: нет


так я написал. что неправильно, и написал вариант, как правильно....
в примере, там где синий текст, передавайте туда свой URL

Добавлено через 2 минут, 45 секунд:

Number(r.url.replace(/\D+/g,""));
где r.url это ваш элемент объекта из ответа

Перейти в начало страницы
+Цитировать сообщение
Loader
сообщение 2014-03-13, 15:28
Сообщение #5
Профессионал
Иконка группы

Группа: Eleanor user
Сообщений: 1 161
Регистрация: 2010-04-19

Репутация:   нет  
Всего: нет


Не знаю кому как правильно, а я сделал так.
Сначала регуляркой извлёк URL:

local directUrl = regex_simple(data,"url\":\"(.+)\",",0);


а затем просто убрал все двойные обратные слеши - и получил то что нужно.
Спасибо за внимание.
Перейти в начало страницы
+Цитировать сообщение

Ответить в данную темуНачать новую тему
0 чел. читают эту тему (гостей: 0, скрытых пользователей: 0)
Пользователей: 0

 
RSS Текстовая версия 0.0355 сек.    12 запросов    GZIP включен    Сейчас: 2024-03-28, 14:01