Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.01.2013, 06:07
Аспирант
Отправить личное сообщение для JustCrazy Посмотреть профиль Найти все сообщения от JustCrazy
 
Регистрация: 20.07.2012
Сообщений: 64

вопрос по регуляркам
Здравствуйте.
Начал потихоньку осваивать регэксы.
Есть у меня массив (234,357,3,6,96), хочу вытянуть из него последнюю цифру. Сделал:
/\(\d*,\d*,\d*,\d*,(\d*)\)/
в принципе меня устраивает, работает, но хочется углубиться. По факту массив может быть не из 5, а допустим из 20-30 цифр, не хочется нагромождения.
Подскажите пожалуйста как рациональнее заменить?
попробовал так:
/\([\d*,]{4}?(\d*)\)/
но что-то не то..

Последний раз редактировалось JustCrazy, 24.01.2013 в 06:32.
Ответить с цитированием
  #2 (permalink)  
Старый 24.01.2013, 09:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

JustCrazy,
alert("(234,357,3,6,96)".replace(/\(.+,(\d+)\)$/,"$1"));

Последний раз редактировалось рони, 24.01.2013 в 09:06.
Ответить с цитированием
  #3 (permalink)  
Старый 24.01.2013, 09:16
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от JustCrazy
Есть у меня массив (234,357,3,6,96)
С массивом лучше работать как с массивом.

Сообщение от JustCrazy
хочу вытянуть из него последнюю цифру. Сделал:
/\(\d*,\d*,\d*,\d*,(\d*)\)/
в принципе меня устраивает, работает
Не пойму что тебя там устраивает...

var s='(234,357,3,6,96)';
var r=/\(\d*,\d*,\d*,\d*,(\d*)\)/;
alert(s.replace(r,''))
alert(s.search(r))


Показывает пусто и ноль...
Ответить с цитированием
  #4 (permalink)  
Старый 24.01.2013, 09:30
Аспирант
Отправить личное сообщение для JustCrazy Посмотреть профиль Найти все сообщения от JustCrazy
 
Регистрация: 20.07.2012
Сообщений: 64

Сообщение от ksa
Не пойму что тебя там устраивает...
Показывает пусто и ноль...
у меня php код, все работает, как часы
Сообщение от ksa
С массивом лучше работать как с массивом.
вообще если начинать с самого начала, то это кусок исходного кода страницы, с которой я тяну этот массив, конечно можно вытянуть все от скобки до скобки, а потом эксплойдом распарсить и взять необходимое мне значение, но это можно сделать проще и по объему меньше через регулярки, которые я пытаюсь осваивать
Сообщение от рони Посмотреть сообщение
JustCrazy,
alert("(234,357,3,6,96)".replace(/\(.+,(\d+)\)$/,"$1"));
вот это хорошо, но как быть, если мне надо вытянуть какое то промежуточное значение, например 3е, или 4е, или 27е.. и т.д. ? извиняюсь, изначально немного неправильно вопрос поставил.
есть что нибудь объединяющее пару символов повторяющихся ?

Последний раз редактировалось JustCrazy, 24.01.2013 в 09:40.
Ответить с цитированием
  #5 (permalink)  
Старый 24.01.2013, 09:42
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от JustCrazy
у меня php код, все работает, как часы
Покажи как используешь
Ответить с цитированием
  #6 (permalink)  
Старый 24.01.2013, 09:49
Аспирант
Отправить личное сообщение для JustCrazy Посмотреть профиль Найти все сообщения от JustCrazy
 
Регистрация: 20.07.2012
Сообщений: 64

Сообщение от ksa
Покажи как используешь
$url='...';
$data = file_get_contents($url);
if (preg_match("/new\sstats\(\d*,\d*,\d*,\d*,\d*,\d*,\d*,\d*,\d*,(\d*),\d*,\d*,(\d*),\d*,\d*,\d*,\d*\)/i",$data,$lists))
	{ echo $list[1].$list[2]; } else { echo 'cant found'; }
Ответить с цитированием
  #7 (permalink)  
Старый 24.01.2013, 09:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

JustCrazy, применительно к JS.
Ответить с цитированием
  #8 (permalink)  
Старый 24.01.2013, 09:54
Аспирант
Отправить личное сообщение для JustCrazy Посмотреть профиль Найти все сообщения от JustCrazy
 
Регистрация: 20.07.2012
Сообщений: 64

Сообщение от ksa
JustCrazy, применительно к JS.
если бы я еще знал JS.. имеются только поверхностные знания...

все же регулярки они и в африке регулярки.. и вопрос по упрощению остается открытым)
Ответить с цитированием
  #9 (permalink)  
Старый 24.01.2013, 09:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от JustCrazy
если мне надо вытянуть какое то промежуточное значение, например 3е
Как вариант...

var s='(234,357,3,6,96)';
var i=3;
s=s.substring(1,s.length-1);
alert(s.split(',')[3])
Ответить с цитированием
  #10 (permalink)  
Старый 24.01.2013, 10:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от JustCrazy
если бы я еще знал JS.. имеются только поверхностные знания...
Во как будет на JS

var s='(234,357,3,6,96)';
var r=/\(\d*,\d*,\d*,\d*,(\d*)\)/;
alert(s.replace(r,'$1'))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по each() и перебору строк таблицы battrack jQuery 1 09.02.2012 14:30
вопрос про возможности JS для рисования и анимации macdack Библиотеки/Тулкиты/Фреймворки 3 15.07.2011 00:13
Вопрос на миллион. Ajax и идентификация по адресной строке. 0931454574 AJAX и COMET 5 31.03.2011 11:54
Теоретический вопрос. gods33 (X)HTML/CSS 10 16.12.2010 23:49
вопрос по long poll megaswin AJAX и COMET 2 27.05.2008 09:20