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

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

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

Регистрация: Dec 2010
Сообщений: 177
Question регулярное выражение последнего вхождения строки

Здравствуйте! Подскажите, пожалуйста, кто знает: как в регулярном выражении задать последнее вхождение строки. Т.е. есть строка:
"Слово Слово Слово Слово Нужное слово Слово"
Нужно выделить Нужное слово. lastIndexOf не предлагать. Нужен патерн регулярного выражения.

Старый 20.02.2013, 19:03
yasha005 вне форума Посмотреть профиль Отправить личное сообщение для yasha005 Найти все сообщения от yasha005
  № 2  
Ответить с цитированием
yasha005
[+1 16.03.13]
[+1 22.03.13]

Регистрация: Dec 2012
Сообщений: 100
Регулярные выражения уместны в том случае если нужное слово является неизвестным, если же оно известно, тогда лучше индэксоф использовать или ластиндэксоф.

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

Старый 20.02.2013, 19:06
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 3  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
yasha005, это схематичный пример, для пояснения сути вопроса: как исключить повторяющиеся блоки слов перед искомым? Тобишь если я задам:
Код AS3:
var myString:String = "Слово Слово Слово Слово Нужное слово Слово"
var myRegExp:RegExp = new RegExp('(Слово)*'+(?P<par>.*?)+'Слово$',"i, g");
var result:Array = myRegExp.exec(myString);
trace(result.par); // Слово Слово Слово Нужное слово !, а мне нужно Нужное слово!!!
На http://learn.javascript.ru/regexp-specials обозвали такое поведение регулярного выражения ЖАДНЫМ. Как умерить эту жадность?


Последний раз редактировалось zorexundra; 20.02.2013 в 19:19.
Старый 20.02.2013, 23:20
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 4  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
судя по http://gskinner.com/RegExr/
RegExp: /Нужное слово/

:о)

Название: word.png
Просмотров: 4548

Размер: 16.8 Кб
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 21.02.2013, 00:33
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 5  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
GBee, это не решение. Если я заранее знаю "result.par" зачем мне использовать регулярные выражения?
N.B.: конструктор, наверное, очень практичен и я не премину воспользоваться им. Спасибо!

Старый 21.02.2013, 02:00
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вас обманули. Дело в пробелах.

— Видишь символ?
— Нет...
— И я нет. А он – есть.

Код AS3:
			var myString:String = "Слово Слово Слово Слово Нужное слово Слово"
			var myRegExp:RegExp = /(Слово\s)*(?P<par>.*?)\sСлово$/ig;
			var result:Object = myRegExp.exec(myString);
			if (result) trace(result.par);
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 21.02.2013 в 02:48.
Старый 21.02.2013, 15:05
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 7  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
Wolsh, спасибо за квалифицированную помощь!
Окажите ещё любезность, подскажите: если разделителем служит не пробел, а любое количество произвольных символов, как в таком случае будет выглядеть патерн?
Пусть даже с исключением искомого.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Но тогда перед Нужным словом ОБЯЗАНО быть Слово.
Иначе непонятно, откуда начинается Нужное))
Код AS3:
var myString:String = "Слово25 СловоНенужноеСлово Левое какое-то вообщеСловоНужное словоСлово"
var myRegExp:RegExp = /.*(Слово\s*)+(?P<par>.*?)\s*Слово$/ig;
var result:Object = myRegExp.exec(myString);
if (result) trace(result.par);
__________________
Reality.getBounds(this);

Старый 21.02.2013, 15:39
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 9  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
Wolsh, это то, что нужно. Спасибо!

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

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

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


 


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


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