Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.10.2011, 17:27
pashadoba вне форума Посмотреть профиль Отправить личное сообщение для pashadoba Найти все сообщения от pashadoba
  № 1  
Ответить с цитированием
pashadoba

Регистрация: Mar 2009
Сообщений: 37
По умолчанию Разбор строки при памощи регулярного вырожения

Привет всем!

Подскажите какое должно быть регулярное выражение, чтобы из строки:

Код AS3:
ставка 1%/2%/3%/4%/5% результат 60/75/90/105/120 иконок.
циклом получить:

Код AS3:
ставка 1% результат 60 иконок.
ставка 2% результат 75 иконок.
ставка 3% результат 90 иконок.
ставка 4% результат 105 иконок.
ставка 5% результат 120 иконок.
Т.е. как добраться до этих значений, вырезать из строки и подменить единственным значением на n-ом шаге?

Старый 04.10.2011, 17:33
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
хорошо бы в этой строке убрать названия. тогда и без регулярки обойтись можно.

Код AS3:
str = str.split('ставка ').join('').split(' результат ').join('/').split(' иконок').join('');
var a:Array = str.split('/');
var b:int = a.length / 2;
for(var i:int = 0 ; i< a.length; i++)  trace( ' text1 ' + a[i] +  ' text2 ' + a[i + b]);
__________________
Марк Tween

Старый 04.10.2011, 17:36
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 3  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Код AS3:
var s: String = '1%/2%/3%/4%/5%';
var ar: Array = s.split('/');
for (var i:int=0;i<ar.length;++i)
{
ar[i] = 60 + (int(ar[i].substr(0, 1)) - 1) * 15;
}
 
s = ar.join('/');
Добавлено через 1 минуту
О блин, опаздал) Да еще не совсем понял((
__________________
http://www.chessmax.ru

Старый 04.10.2011, 17:49
pashadoba вне форума Посмотреть профиль Отправить личное сообщение для pashadoba Найти все сообщения от pashadoba
  № 4  
Ответить с цитированием
pashadoba

Регистрация: Mar 2009
Сообщений: 37
таким способом понятно

но возникает ситуация, когда строки меняются, т.е. будет не
Код AS3:
ставка 1%/2%/3%/4%/5% результат 60/75/90/105/120 иконок.
а
Код AS3:
 проценты 10%/20%/30%/40%/50% начислено 600/750/900/1050/1200 денег.
нужно как-то вытащить значения

Старый 04.10.2011, 17:57
TWETTI вне форума Посмотреть профиль Отправить личное сообщение для TWETTI Найти все сообщения от TWETTI
  № 5  
Ответить с цитированием
TWETTI
 
Аватар для TWETTI

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Вот так делается через регулярные выражения:
Код AS3:
var r1:RegExp = /(?:\d+%\/?){5}/;
var r2:RegExp = /(?:\d+\/?){5}/;
var r3:RegExp = /[а-я]+/;
var r4:RegExp = /[а-я]+\./;
 
var string:String = "проценты 10%/20%/30%/40%/50% начислено 600/750/900/1050/1200 денег."
 
var arrayOfPerc:Array = String(r1.exec(string)).split("/");
var arrayOfNums:Array = arrayOfNums = String(r2.exec(string)).split("/");
 
var firstWord:String = r3.exec(string);
var lastWord:String = r4.exec(string);
 
 
var len:int = arrayOfNums.length;
 
for (var i:int = 0; i < len; i++)
{
	trace(firstWord + " " + arrayOfPerc[i] + " результат " + arrayOfNums[i] + " " + lastWord);
}
Выводит:
Код AS3:
проценты 10% результат 600 денег.
проценты 20% результат 750 денег.
проценты 30% результат 900 денег.
проценты 40% результат 1050 денег.
проценты 50% результат 1200 денег.


Последний раз редактировалось TWETTI; 04.10.2011 в 18:05.
Старый 04.10.2011, 18:01
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 6  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
TWETTI ваш вариант ему тоже не подходит
__________________
Марк Tween

Старый 04.10.2011, 18:04
TWETTI вне форума Посмотреть профиль Отправить личное сообщение для TWETTI Найти все сообщения от TWETTI
  № 7  
Ответить с цитированием
TWETTI
 
Аватар для TWETTI

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Цитата:
Сообщение от in4core Посмотреть сообщение
TWETTI ваш вариант ему тоже не подходит
Почему?

Старый 04.10.2011, 18:18
pashadoba вне форума Посмотреть профиль Отправить личное сообщение для pashadoba Найти все сообщения от pashadoba
  № 8  
Ответить с цитированием
pashadoba

Регистрация: Mar 2009
Сообщений: 37
TWETTI, то что нужно, спасибо

Старый 04.10.2011, 18:19
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 9  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
Почему?
Теперь все верно))))))
__________________
Марк Tween

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:04.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.