тупака поймал с regexp
/^[^m]*$/m - паттерн, соответствует всем строкам, не содержащим символ "m".
тогда как будет выглядеть паттерн, который соответствует всем строкам, не содержащим подстроку "mm"?
P.S. почему /^[^m]*$/m не срабатывает для пустых строк?
P.S. Может чуть расширить контекст задачи? ;) Речь вообще про JavaScript?
RTFM. Без комментариев.
Вообще-то срабатывает.
Не дошло до меня ( Можно по-подробнее?
Задачу решаю на PHP (PCRE).
{
// Код для случая когда в строке нет mm
}
$s = preg_replace("/^[^m]*$/m", "", $s); - удалит все СТРОКИ, не имеющие символ "m".
Вопрос: как изменить вторую конструкцию, чтобы вместо "m" искалась подстрока "mm"?
$s = preg_replace("/^[^m]*$/m", "", $s); - удалит все СТРОКИ, не имеющие символ "m".
Вопрос: как изменить вторую конструкцию, чтобы вместо "m" искалась подстрока "mm"?
Во первых не тестил но "/^[^m]*$/m" ищет от начала строки до КОНЦА
ыо вторых использовать регулярки для замены текста не то что глупо ... далее идет нецензурный текст
В третих где конструкция () которая определят ЧТО заменять
в четвертых пака хватит
ыо вторых использовать регулярки для замены текста не то что глупо ... далее идет нецензурный текст
В третих где конструкция () которая определят ЧТО заменять
в четвертых пака хватит
1. Ищет! От начала строки и до конца! И заменяет все что найдено на "".
2. Если не использовать регулярные выражения для замены текста, то для чего их тогда вообще использовать??? Неужели только для поиска?
Можно предположить, что данная задача решается без использования регулярных вырожений, но у меня задача рассмотреть возможность написания такого паттерна, а не практическая реализация конкретной задачи.
3. смотри п.1 В данном случае использовать обратные ссылки нет необходимости.
P.S. неужели великий и могучий REGEXP не способен выполнить простецкую задачку - убрать все строки, где отсутствует определенная последовательности символов? :(
Почему? Способен!
foreach {
if(!preg_match
array_push
}
но примерно я думаю что данная задумка не осуществима с помощью пкре в том понимании в каком ты это представляешь. для этого более лёгкие и быстрые вещи есть, например strpos...
и в мануале php есть глава по регуляркам, почитай обязательно.
На Perl это делается одной строчкой и без циклов, так что все претензии к Zend'у.
ну так покажи мне эту строчку! Насколько мне известно реализация REGEXP в PHP мало чем отличается от Perl.
[COLOR="Green"]my $a = ''; $b =~ s/(^?.*?mm.*?(\r?\n|$))/$a .= $1/egi;[/COLOR]
print $a;
cat file | perl -ni -e "print if (/mm/)"
убираем из файла все строки где нет mm.
cat file | perl -ni -e "print if (! /mm/)"
убираем все, где mm есть.
вариант - вместо ! /mm/ - использовать [^m][^m], но такой вариант вырежет пустые строки.
в чем проблема то??
(
'abc',
'mab',
'abm',
'mmm',
'amm',
);
print_r(array_diff($lines, preg_grep("/mm/i", $lines)));