С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970
|
Добавлено: 09/03/10 в 09:03 |
Подскажите, пожалуйста. Как, только регулярным выражением, выбрать строки, в которых нет определённого слова (НЕ последовательность символов).
Спасибо.
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 09/03/10 в 09:10 |
приведи пример
|
|
|
|
С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970
|
Добавлено: 09/03/10 в 09:20 |
Код: | slovo raz
dva bez slov
tri s oshibkoi sloov |
Выбрать те, где отсутствует slovo. Выражение должно выбирать 2 и 3.
|
|
|
|
С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760
|
Добавлено: 09/03/10 в 09:55 |
построчно проверяй на налачие, в чем проблема то?
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 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);
|
|
|
|
С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970
|
Добавлено: 09/03/10 в 10:15 |
SAV писал: | построчно проверяй на налачие, в чем проблема то? |
Подскажи.
ibiz: не подходит. Только регулярные, без методов языка.
|
|
|
|
С нами с 13.08.08
Сообщения: 1538
Рейтинг: 1011
|
Добавлено: 09/03/10 в 10:25 |
Только построчно. Для строки произвольной длины регуляркой не получится (а для фиксированной - регулярное выражение будет во много раз длиннее самой строки).
|
|
|
|
С нами с 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ю строки.
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 09/03/10 в 10:45 |
вся проблема в невнятном тз
если смотреть построчно и если нужно отбросить вариант Код: | vot element slovo raz |
то:
Код: | ^.*element\s(?!slovo raz).*$ |
|
|
|
|
С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760
|
Добавлено: 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; }
вариант подходит, добавляем элемент-строку в массив-результат
}
|
примерно так
|
|
|
|
С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970
|
Добавлено: 09/03/10 в 10:51 |
Всем спасибо, решение не найдено
Вариант freeek: наверно рабочий, негативный просмотр вперёд, но программа (текстовой редактор) для которой мне нужно выражение, такие не поддерживает
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 09/03/10 в 10:56 |
gimcnuk писал: | Всем спасибо, решение не найдено
Вариант freeek: наверно рабочий, негативный просмотр вперёд, но программа (текстовой редактор) для которой мне нужно выражение, такие не поддерживает |
просили регу, ее дали, хотя вариант от
SAV будет побыстрее
если речь идет о кодинге, если вопрос встал в редакторе, то тут х.з. что поможет
|
|
|
|