Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 08.01.2012, 17:22
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от monolithed
главное чтобы было от чего оттолкнуться
Хороший пример, спасибо Кажется, улавливаю логику: чтобы найти что-то перед чем стоит определенный символ, надо искать не этот символ, а то, что следует за ним.
Позволил себе немного изменить Ваш пример
var x = "foo|bar";
var z = /(?=\w+$)/;

var w = x.replace(z, "="); // находит позицию после "|" и вставляет туда символ

alert(w);
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #12 (permalink)  
Старый 08.01.2012, 17:35
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

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

www.youtube.com чтобы ссылка отделялась от остального текста пробелами при том заменялась ссылкой www.google.com при том пробелы слева и справа ссылки оставались бы нетронутыми

вот в этой строке

"www.youtube.com блаwww.youtube.com бла www.youtube.com"
Ответить с цитированием
  #13 (permalink)  
Старый 08.01.2012, 17:36
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

п.с. парсер сайта ссылки уже зпарсил смотрю) лол не обращай на это внмания
Ответить с цитированием
  #14 (permalink)  
Старый 08.01.2012, 17:40
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Livaanderiamarum
ну тут видешь саму суть регулярок не используешь, тебе зарание известна строка в которой будем искать, а этого быть не должно.
var text = 'папра 5 foo|bar 54 тиапт апк4';
alert(text.replace(RegExp(text.match(/\|(\w+\b)/)[1]), 'foo'));
Ответить с цитированием
  #15 (permalink)  
Старый 08.01.2012, 17:43
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

аа!!!!! все прозрел)))!!!!!

[1] обращение к свойству регулярки возвращает уже не саму регулярку а скобочную группу)))) спасибо))!
я забл что мы точку используем и к свойству обращаемся)))
Ответить с цитированием
  #16 (permalink)  
Старый 08.01.2012, 18:28
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Livaanderiamarum, как понял
// Задача заменить youtube.com в середине строки так, чтобы пробелы слева и справа оставались не тронутыми
var x = "youtube.com бла youtube.com бла youtube.com";
var z = /(?!^)youtube.com(?= )/g;
var w = x.replace(z, "google.com");
alert(w);

var x = "папра 5 foo|bar 54 тиапт апк4";
var z = /(?! )[a-z]+(?= )/g
var w = x.replace(z, "foo");
alert(w);
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #17 (permalink)  
Старый 08.01.2012, 18:58
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от nerv_ Посмотреть сообщение
Livaanderiamarum, как понял
// Задача заменить youtube.com в середине строки так, чтобы пробелы слева и справа оставались не тронутыми
var x = "youtube.com бла youtube.com бла youtube.com";
var z = /(?!^)youtube.com(?= )/g;
var w = x.replace(z, "google.com");
alert(w);
Не, задача заменить ВСЕ ютьюбы)) я специально сделал их в разных местах в разных условиях)
Ответить с цитированием
  #18 (permalink)  
Старый 08.01.2012, 19:05
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Livaanderiamarum
Не, задача заменить ВСЕ ютьюбы
Тогда еще проще
// Задача заменить все youtube.com так, чтобы пробелы слева и/или справа оставались не тронутыми
var x = "youtube.com бла youtube.com бла youtube.com";
var z = /youtube.com/g;
var w = x.replace(z, "google.com");
alert(w);
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #19 (permalink)  
Старый 08.01.2012, 19:23
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

блин тогда так)
1) заменить все ССЫЛКИ на ютьюб, словом "НННЯЯЯ"
2) при том чтобы пробелы слева и справа от них остались нетронутыми
3) при том что длинны ссылок могут быть разные
4) при том что слова и знаки не могут касаться наших ссылок ни справа ни слева. только пробелы могут их касаться, иначе ссылка не считается ссылкой.

вот строка


"youtube.com/wacht?fdfg^%fgdghd745u76GHkGKGHK&8^56756*?fgd=fgdg бла youtube.com/fgdgdf?:fdgfd+пав=*?а бла youtube.com.апвпав*?=fg";

Последний раз редактировалось Livaanderiamarum, 08.01.2012 в 19:26.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
regexp не работает экранирование точки Spice Общие вопросы Javascript 2 10.11.2011 13:41
evalScripts без regexp и eval Diem Events/DOM/Window 1 30.07.2009 17:34
мааленький вопрос по Regexp:) mirniy Общие вопросы Javascript 1 22.01.2009 20:47
RegExp & Mozilla (быстродействие) tau Общие вопросы Javascript 9 24.11.2008 16:35
RegExp и unicode Yury900 Общие вопросы Javascript 7 13.05.2008 00:19