Forum Webscript.Ru

Программирование => Perl => Тема начата: Boatman от 04 Августа 2002, 10:59:00

Название: Отрицание слова
Отправлено: Boatman от 04 Августа 2002, 10:59:00
Как сделать отрицание целого слова? с отдельными символами понятно
[^a-z]
А что нибудь типа ^(слово)?
Что-то я торможу наверное
Название: Отрицание слова
Отправлено: ю юю от 05 Августа 2002, 15:25:39
$_=\' test \';
if(m/^\\s(?!\\btest\\b)\\S/){
   print "$_\\n";
}

$_=\' test2 \';
if(m/^\\s(?!\\btest\\b).*\\s/){
   print "$_\\n";
}

$_=\'ю юю  умныйдурак O KAK\';
if(m/ю юю(?!.*дурак).*/){
   print "$_\\n";
}

$_=\'ю юю  умный О КАК\';
if(m/ю юю(?!.*дурак).*/){
   print "$_\\n";
}

тут на задачу нужно смотреть!

Или вас интересовал такой тривиальный вопрос
[^a-zA-z]+


$_=\'word\';
if (/[^a-zA-z]+/){
   print $_;
}
$_=\'123456\';
if (/[^a-zA-z]+/){
   print $_;
}

Да если вы скажите ююю дурак я даже спорить не буду :)
Название: Отрицание слова
Отправлено: Boatman от 05 Августа 2002, 22:28:55
Я не буду унижаться до перебранки с хамами, а для  нормальных людей поясню - нужен  шаблон типа «НЕ (определенное_слово)» например, чтобы если в строке нет слова «идиот».
Название: Отрицание слова
Отправлено: ююю от 05 Августа 2002, 23:08:28
>нужен шаблон типа «НЕ (определенное_слово)» например, чтобы если в строке нет слова «идиот».



Вот он


$_=\'ю юю умный О КАК\';
if(m/ю юю(?!.*дурак).*/){
print "$_\\n";
}
Название: Отрицание слова
Отправлено: ююю от 05 Августа 2002, 23:11:52
Ну или так
$_=\'умный О КАК\';
if(m/^(?!.*дурак).*/){
print "$_\\n";
}

ПС А где вы видеите проблему с хамами :) Или расписыватся в собственной глупости(что я и зделала ) вы считаете хамством Ну тогда извените
Название: Отрицание слова
Отправлено: Unregistered от 05 Августа 2002, 23:22:55
Да можете поинттерисоватся такими онструкциями
(?!шаблон)
(?=шаблон)
Название: Отрицание слова
Отправлено: Unregistered от 14 Августа 2002, 11:43:46
Мне кажется, можно пойти методом "от противного", то есть проверять ЕСТЬ ли в строке данное слово. Это же проще! Например, проверяем слово "круг":
if($my_text =~ /круг/){
&krug_yes;
}else{
&krug_no;
}
Название: Отрицание слова
Отправлено: dymka от 14 Августа 2002, 13:47:34
есть же конструкция !~ ...
$string = \'I am a good boy\';
print "YES" if $string !~ /idiot/;
напечатает YES, т.к. в строке нет слова idiot.
Или
print "YES" unless $string =~ /idiot/;
тот же результат...