|
|
|
новичок
      
участник
Last Login: 05.06.2002 17:29
Сообщ.: 7,
Visits: 78
|
|
напишите плз с ходу регулярное выражение кот. будет проверять содержит ли строка подстроку вида "пробелы, две одинаковых буквы, затем одна отличная он предыдцщих и пробела, затем снова любое колдичество проьелов" т.е. типа " aab " спасибо
|
|
|
|
|
Supreme 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, видимо что-то подобное
|
|
|
|
|
новичок
      
участник
Last Login: 05.06.2002 17:29
Сообщ.: 7,
Visits: 78
|
|
ну не так. там же еще пробел и причем $str =~/\s(\w)\1(?!\1)\s/ не работает. говорит "нет" даже когда там прбел есть т.е именно там дело в том что заглядывание вперед прекращает поиск..
|
|
|
|
|
Supreme Being
      
участник
Last Login: 12.02.2004 16:41
Сообщ.: 1 756,
Visits: 19 372
|
|
А на VBScript все работает и поиск после заглядывания вперед продолжается.
М.б. $str =~/\s(\w)\1(?!\1)\w\s/ ?
|
|
|
|
|
новичок
      
участник
Last Login: 05.06.2002 17:29
Сообщ.: 7,
Visits: 78
|
|
представляешь, так работает! я поняла в чем там фишка. там заглядывание вперед не учитывает найденный результат :) поэтому \w после него как раз его учитывает
Спасибо!!
|
|
|
|
|
Supreme Being
      
участник
Last Login: 12.02.2004 16:41
Сообщ.: 1 756,
Visits: 19 372
|
|
| да в (?!\1)\w весь прикол этого регэкспа
|
|
|
|
|
Supreme Being
      
участник
Last Login: 20.09.2003 13:10
Сообщ.: 121,
Visits: 1 332
|
|
| думаю так правильней будет: \s+([a-zA-Z])\1[^\W\d_\1]\s*
|
|
|
|
|
новичок
      
участник
Last Login: 05.06.2002 17:29
Сообщ.: 7,
Visits: 78
|
|
| увы нет т.к [\1]не работает. в перле по крайней мере точно.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 12.02.2004 16:41
Сообщ.: 1 756,
Visits: 19 372
|
|
[^\W\d_\1] - весьма странно, если уж перебирать только буквы (а в \w входят и цифры, по крайней мере в VBScript), то лучше так
\s+([a-zA- | | | |