ПРОБЛМА С RegEXP
КАК найти что-то ПЕРЕД чем стоит определенный символ, но НЕ захватить этот символ?
|
Ну, кроме как взять все, кроме этого символа, в скобочки
на самом деле я соврал что изучал регулярки) вчера ночью начал учить по ссылкам что дали. пишу вот для теста регулярку ищущую ссылки на youtube на форуме и заменяющую эти ссылки роликами. var reg = /(?:\s|^)(?:http:\/\/www\.|https:\/\/www\.|www\.)?youtube.com\/watch\?\S*v=(\S*?)(?:\s|&\S*|$)/ она захватывает первый пробел если он там есть, и захватывает последний пробел если после айдишника видео v=apdwyVW0HnE не идет знака & как избавится от этого? |
Цитата:
|
Цитата:
alert('foo|bar'.match(/\|(\w+)/)[1]); |
Цитата:
----- я это сделать тоже могу, хочу посмотреть способ без извращений. например / (?:\s | -) (?: коты)/ например как мне заменить ТОЛЬКО слово коты не затронув пробел перед ним? потому что может быть либо пробел либо тире! которые не должны трогаться. неужели придется сохранять еще одну группу? / (\s | -) (?: коты)/ заменяем "$1страусы" типа того? А это не сильно нагружает комп? |
Цитата:
alert('foo|bar'.replace(/\w+(?=$)/g, 'foo')); ну и так далее, главное чтобы было от чего оттолкнуться |
так, я что-то не уловил при чем входные данные)) ты оттолкнулся от того что СТРОКА КОНЧАЕТСЯ)?
ну давай сделаем боевые условия " |bar &bar " var str = ' |bar &bar ' alert( str.replace( /(\|)(bar)\s/g, '$1foo') ); |
Иными словами НЕ ЗАТРОНУТЬ ЭТОТ ПЕРЕДНИЙ СИМВОЛ никак, мы можем его только ПЕРЕЗАПИСАТЬ ТАКИМ-ЖЕ)))
|
alert('папра 5 foo|bar 54 тиапт апк4'.replace(/\w+(?=\s\d)/, 'foo')); |
Цитата:
|
Часовой пояс GMT +3, время: 12:49. |