Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.12.2011, 22:03
Аспирант
Отправить личное сообщение для syegorius Посмотреть профиль Найти все сообщения от syegorius
 
Регистрация: 28.08.2010
Сообщений: 91

регулярные выражения
доброе время суток

подскажите пожалуйста как в регулярном выражении указать "не слово", т. е. вот это /[^a]*/ значит все символы кроме "а", а как указать все кроме слова "hello"?

заранее спасибо за ответы!
Ответить с цитированием
  #2 (permalink)  
Старый 01.12.2011, 22:05
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

/[^(?:hello)]*/
Ответить с цитированием
  #3 (permalink)  
Старый 01.12.2011, 22:21
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

devote, ну-ну...

alert("olleh".match(/[^(?:hello)]/));


Все специальные символы в квадратных скобках - просто символы. За исключением дефиса.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #4 (permalink)  
Старый 01.12.2011, 22:36
Аспирант
Отправить личное сообщение для syegorius Посмотреть профиль Найти все сообщения от syegorius
 
Регистрация: 28.08.2010
Сообщений: 91

а если их закоментить, т. е. "\(", "\)" и "\?" это что то даст?
Ответить с цитированием
  #5 (permalink)  
Старый 01.12.2011, 22:43
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от syegorius
а если их закоментить, т. е. "\(", "\)" и "\?" это что то даст?
Нет.

Опишите подробнее, что именно требуется? Может, можно решить и без такого...
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #6 (permalink)  
Старый 01.12.2011, 22:51
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

ну значит никак это не сделать, обычно отрицаниями не пользуюсь.
Ответить с цитированием
  #7 (permalink)  
Старый 01.12.2011, 22:59
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от devote
ну значит никак это не сделать, обычно отрицаниями не пользуюсь.
Просто можно попробовать вывернуться на чём-то вроде x(?!y).

А вообще да, отрицания в регах слабо сделаны.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #8 (permalink)  
Старый 01.12.2011, 23:03
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,577

Вообще условие бред, скорей всего вам нужно не то что вы просите.
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 01.12.2011, 23:18
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Aetae
Вообще условие бред, скорей всего вам нужно не то что вы просите.
Потому и прошу уточнить...
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #10 (permalink)  
Старый 02.12.2011, 00:15
Аспирант
Отправить личное сообщение для syegorius Посмотреть профиль Найти все сообщения от syegorius
 
Регистрация: 28.08.2010
Сообщений: 91

))) вообще спасибо за такое внимание к посту. я решил задачу немного подругому, правда есть одна проблема, но о ней чуть по позже.

по поводу отрицания слова, то мне это нужно потому что я не раз уже сталкивался с этим, столкнулся сегодня и думаю, что еще не раз столкнусь и иногда просто не вижу другого способа создать регулярное выражение кроме как не отрицанием именно не символа, а целого слова!

ну а теперь собственно о новой проблеме:

есть вот такой код:

var is=1
var string='Hello <span id="esui0" class="bold">a<span id="esui0" class="underline">mig</span>o</span>)<span class="inactive" id="anchor1"></span>some text<span class="some-class">and some text</span><span class="inactive" id="anchor0"></span>';
var enteredREN=new RegExp('(^.*anchor'+(is-1)+'[^>]*></span>)(.*)(<span.*anchor'+is+'.*$)','ig');
var enteredRENN=new RegExp('(^.*anchor'+is+'[^>]*></span>)(.*)(<span.*anchor'+(is-1)+'.*$)','ig');
var entered=string.replace(enteredREN,'$2');
if(entered!=='')entered=cHtml.replace(enteredRENN,'$2');


задача - нужно получить содержимое которое находится между span#anchor0 и span#anchor1, причем span#anchor1 может быть как после span#anchor0 так и перед, плюс между ними может быть не только текст но и теги.

как видите выше одно регулярное выражение написано для случая когда span#anchor1 после span#anchor0, а второе - когда перед.
но если последовательность span#anchor1 после span#anchor0, то когда происходит первая проверка, она возвращает всю строку, и вторая проверка не срабатывает.

скажите можно ли как-то это обойти, но без добавление в условие проверки if(entered!=='') entered==string, то есть что бы если не найдено то что я ищу возвращалась не проверяемая строка, а false или null
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения syegorius Общие вопросы Javascript 8 27.08.2011 00:17
нежадные регулярные выражения KOLANICH Общие вопросы Javascript 2 12.12.2010 01:08
Регулярные выражения в JS igsavenko Общие вопросы Javascript 2 18.05.2010 21:33
Функции поиска и замены строк или регулярные выражения? Armen Общие вопросы Javascript 1 01.01.2010 12:35
регулярные выражения php HelpeR Серверные языки и технологии 5 15.09.2009 21:09