срочно нужно регулярное выражение!!!
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



срочно нужно регулярное выражение!!! Expand / Collapse
Автор
Сообщение
04.06.2002 13:01
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 05.06.2002 17:29
Сообщ.: 7, Visits: 78
напишите плз с ходу регулярное выражение кот. будет проверять содержит ли строка подстроку вида "пробелы, две одинаковых буквы, затем одна отличная он предыдцщих и пробела, затем снова любое колдичество проьелов"
т.е. типа " aab "
спасибо
Сообщ. #751890
04.06.2002 14:25
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.02.2004 16:41
Сообщ.: 1 756, Visits: 19 372
Так это выглядит на VBScript

Set oRE = New RegExp
oRE.Global = True
oRE.Pattern = " +(\w)\1(?!\1)\w +"
MsgBox oRE.Test(" ddc ")

На Perl, видимо что-то подобное
Сообщ. #751903
04.06.2002 15:04
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 05.06.2002 17:29
Сообщ.: 7, Visits: 78
ну не так. там же еще пробел
и причем
$str =~/\s(\w)\1(?!\1)\s/ не работает.
говорит "нет" даже когда там прбел есть т.е именно там дело в том что заглядывание вперед прекращает поиск..
Сообщ. #751913
04.06.2002 15:20
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.02.2004 16:41
Сообщ.: 1 756, Visits: 19 372
А на VBScript все работает и поиск после заглядывания вперед продолжается.

М.б. $str =~/\s(\w)\1(?!\1)\w\s/ ?
Сообщ. #751915
04.06.2002 16:22
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 05.06.2002 17:29
Сообщ.: 7, Visits: 78
представляешь, так работает!
я поняла в чем там фишка. там заглядывание вперед не учитывает найденный результат :) поэтому \w после него как раз его учитывает

Спасибо!!
Сообщ. #751928
04.06.2002 16:42
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.02.2004 16:41
Сообщ.: 1 756, Visits: 19 372
да в (?!\1)\w весь прикол этого регэкспа
Сообщ. #751929
05.06.2002 10:35
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 20.09.2003 13:10
Сообщ.: 121, Visits: 1 332
думаю так правильней будет: \s+([a-zA-Z])\1[^\W\d_\1]\s*
Сообщ. #751979
05.06.2002 12:36
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 05.06.2002 17:29
Сообщ.: 7, Visits: 78
увы нет т.к [\1]не работает. в перле по крайней мере точно.
Сообщ. #751992
05.06.2002 13:00
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.02.2004 16:41
Сообщ.: 1 756, Visits: 19 372
[^\W\d_\1] - весьма странно, если уж перебирать только буквы (а в \w
входят и цифры, по крайней мере в VBScript), то лучше так

\s+([a-zA-