Реклама на сайте Advertise with us

Регулярные, выбрать не слово

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 09/03/10 в 09:03       Ответить с цитатойцитата 

Подскажите, пожалуйста. Как, только регулярным выражением, выбрать строки, в которых нет определённого слова (НЕ последовательность символов).

Спасибо.

0
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 09/03/10 в 09:10       Ответить с цитатойцитата 

приведи пример

8
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 09/03/10 в 09:20       Ответить с цитатойцитата 

Код:
slovo raz
dva bez slov
tri s oshibkoi sloov


Выбрать те, где отсутствует slovo. Выражение должно выбирать 2 и 3.

0
 



С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760


Передовик Master-X (01.03.2005) Передовик Master-X (16.03.2005) Передовик Master-X (16.10.2016) Передовик Master-X (01.11.2016) Передовик Master-X (16.11.2016) Ветеран трепа Master-X (01.12.2016)
Ссылка на сообщениеДобавлено: 09/03/10 в 09:55       Ответить с цитатойцитата 

построчно проверяй на налачие, в чем проблема то?

8
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 09/03/10 в 09:58       Ответить с цитатойцитата 

лучше не использовать регулярки, они грузят серв, быстрее работает функция сравнения stripos
$text = array('slovo raz',
'dva bez slov',
'tri s oshibkoi sloov')
$slovo = "slovo";
foreach ($text as $hay)
if (stripos($hay, $slovo)===false)$need[]=$hay;
print_r($need);

8
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 09/03/10 в 10:15       Ответить с цитатойцитата 

SAV писал:
построчно проверяй на налачие, в чем проблема то?

Подскажи.

ibiz: не подходит. Только регулярные, без методов языка.

0
 



С нами с 13.08.08
Сообщения: 1538
Рейтинг: 1011

Ссылка на сообщениеДобавлено: 09/03/10 в 10:25       Ответить с цитатойцитата 

Только построчно. Для строки произвольной длины регуляркой не получится (а для фиксированной - регулярное выражение будет во много раз длиннее самой строки).

8
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 09/03/10 в 10:34       Ответить с цитатойцитата 

Угу.

Тогда немного другой вариант. Есть некий постоянный элемент (последовательность символов), присутствующий в каждой строке. Нужно выбрать строки, в которых после этого элемента нет определённого слова.

Код:
vot element slovo raz
dva bez element slov
tri s oshibkoi element sloov

Опять же, выражение выбирает 2ю и 3ю строки.

0
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 09/03/10 в 10:45       Ответить с цитатойцитата 

вся проблема в невнятном тз


если смотреть построчно и если нужно отбросить вариант
Код:
vot element slovo raz


то:
Код:
^.*element\s(?!slovo raz).*$

8
 



С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760


Передовик Master-X (01.03.2005) Передовик Master-X (16.03.2005) Передовик Master-X (16.10.2016) Передовик Master-X (01.11.2016) Передовик Master-X (16.11.2016) Ветеран трепа Master-X (01.12.2016)
Ссылка на сообщениеДобавлено: 09/03/10 в 10:47       Ответить с цитатойцитата 

Код:
$source = file(текстовый файл);

$bad_word = "slovo";
$bad_string = $element." ".$bad_word;

foreach($source as $value) {
  if ((substr_count($value, $bad_string)) > 0) { continue; }
  вариант подходит, добавляем элемент-строку в массив-результат
}


примерно так

8
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 09/03/10 в 10:51       Ответить с цитатойцитата 

Всем спасибо, решение не найдено icon_smile.gif
Вариант freeek: наверно рабочий, негативный просмотр вперёд, но программа (текстовой редактор) для которой мне нужно выражение, такие не поддерживает icon_sad.gif

0
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 09/03/10 в 10:56       Ответить с цитатойцитата 

gimcnuk писал:
Всем спасибо, решение не найдено icon_smile.gif
Вариант freeek: наверно рабочий, негативный просмотр вперёд, но программа (текстовой редактор) для которой мне нужно выражение, такие не поддерживает icon_sad.gif


просили регу, ее дали, хотя вариант от
SAV будет побыстрее

если речь идет о кодинге, если вопрос встал в редакторе, то тут х.з. что поможет

8
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »