Forum Webscript.Ru

Программирование => Perl => Тема начата: st_steev от 03 Октября 2002, 23:36:09

Название: помогите с рег. выражением
Отправлено: st_steev от 03 Октября 2002, 23:36:09
Вобщем опять тема:) Короче, надо определить нет ли длинного слова, которое может превышать определенную длину. Но при этом нужно исключать проверку того,что находится между [a][/a] и . Мужики, заранее спасибо:)
Название: помогите с рег. выражением
Отправлено: st_steev от 03 Октября 2002, 23:38:06
после и идет [mail][/mail]:)
Название: помогите с рег. выражением
Отправлено: USE от 04 Октября 2002, 00:46:27
я когда-то делал что-то подобное. может это наведет тебя на определенные мысли:

if( $message =~ /[^\\s]{40,}/ )
{
    unless( $message =~ /.{1,40}?<\\/a>/i )
    {
         $warning = "вы используете слишком длинные слова";
    }
}

если что не понятно - будем объяснять ;)
Название: помогите с рег. выражением
Отправлено: st_steev от 04 Октября 2002, 09:05:43
Нет, мне надо проверить не то, что внутри тегов, а то, что вне них. Ну, например, есть строка:
аааааааааааааааааааааааааааа[a]link[/a]aaaaaaaaaaaaaaaa[a]link[/a]aaaaaaaaaaaaaaaaaaaaaaaaaa[mail]mail[/mail]aaaaaaaaaaaaaaaaaaa [a]link[/a] и тд.....
Ну дык вот, надо проверить, нет ли длинного слова вне тегов. А то, что внутри, для них есть своя обработка....
Название: помогите с рег. выражением
Отправлено: mike от 04 Октября 2002, 12:17:01
Дык...:)
Думаю, автор объяснит понятнее...
Цитировать
if( $message =~ /[^\\s]{40,}/ )


Перевожу на нормальный язык. ;) Если в сообщении есть последовательность символов длиной больше 40, то...

Цитировать
unless( $message =~ /.{1,40}?<\\/a>/i )


если в сообщении не содержится ссылка длиной до 128 символов с описанием длиной до 40 символов, то выдать сообщение об ошибке.

USE, я ничего не упустил? :)

В общем-то это хороший вариант, но есть возможность того, что в сообщении будет и слово, и длинная ссылка.
Название: помогите с рег. выражением
Отправлено: USE от 04 Октября 2002, 14:47:14
Цитировать
USE, я ничего не упустил?

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

да может быть, регексп можно немного подкоректировать, ведь я его на лету вспоминал-придумывал ;). если автору надо - пускай додумает, а если не получится - будем мы додумывать.
Название: помогите с рег. выражением
Отправлено: st_steev от 04 Октября 2002, 23:40:13
Ребят, до этого и я догадался. Опять выходит недопонимание:(
тут или я туплю или одно из двух... Ведь этот код смотрит, есть ли слово, длина которого более сорока символов. Если есть, то смотрит, есть ли ссылка с указанными параметрами. Ведь правильно?... Сами посудите, если слов много, ссылок много, разве это работать будет...сомневаюсь. Я вот думаю, как бы сделать так, что б при проверке, вот эти теги и все, что между ними находится, пропускалось бы вне зависимости от количество слов и тегов. Просто я эти рэгскэпы недавно начал осваивать и некоторогоя еще не знаю и не допонимаю. Я над этой задачкой уже который день бьюсь...