Regular Expressions, может есть спецы?

Chel
Дата: 10.12.2002 15:47:44
Сорри за не в тему,
Подскажите плиз форум по Рег Экспам
иль кто с ходу помочь может составить паттерн.
нада из строки "aaaa{{bbb}}{{ooo}}cccc{{ddd}}eee"
выдернуть все что не заключено в {{}}
т.е результатом должен быть массив aaaa, cccc, eee
ПАСИБО!
mahoune
Дата: 10.12.2002 16:13:32

$a="aaaa{{bbb}}{{ooo}}cccc{{ddd}}eee";
$b=$a;
#$b=~s/\{\{*\}\}//g;
$b=~s/\{\{[A-Za-z0-9]*\}\}/ /g;
print $b


Такая штука на Perl работает! Соответственно само регулярное выражение: /\{\{[A-Za-z0-9]*\}\}/ /g
Chel
Дата: 10.12.2002 16:47:39
Сенкс!
..но нада на VB иль JS :(
а /g это отрицание?
если да , то не могу найти аналог для VB иль JS Ж(....
Makc
Дата: 10.12.2002 17:28:35
Объект RegExp
mahoune
Дата: 10.12.2002 17:42:43
Разберем строку на составляющие!
$b=~s/\{\{[A-Za-z0-9]*\}\}/ /g;

/// - (Три слэша) Регулярное выражение UNIX
"g" - в конце это знак "Global" замена по всему содержимому
[A-Za-z0-9]* - Символы в диапазоне A-Z и a-z и 0-9 * (Сколько угодно раз от 0 до бескон.)
\}\} - Использовать "}" без "\" нельзя так как это зарезервированный символ

Остальное набабахи Perl

Для VB надо использовать Microsoft VBScript Regular Expressions 5.5 (C:\WINNT\System32\vbscript.dll\3) Такой у меня линк к этому файлу!

А там это будет выглядеть так:

Dim regEx, Match, Matches

Set regEx = New RegExp

a = "aaaa{{bbb}}{{ooo}}cccc{{ddd}}eee"
regEx.Pattern = "\{\{\w*\}\}"
regEx.Global = True
b = regEx.Replace(a, " ")

MsgBox "[" & a & "]" & Chr(13) & Chr(10) & "[" & b & "]"
Chel
Дата: 10.12.2002 18:22:28
при таком паттерне результат будет -
{{bbb}}
{{ooo}}
{{ddd}}
(его я уже сделал)
а мне надо -
aaaa
cccc
eee
jimmers
Дата: 10.12.2002 18:41:36

Option Explicit

Dim RegEx, Input, Item, Results

Set RegEx = New RegExp

Input = "aaaa{{bbb}}{{ooo}}cccc{{ddd}}eee"
RegEx.Pattern = "\{\{\w+\}\}"
RegEx.Global = True
Set Results = regEx.Execute(Input)

For Each Item In Results
WScript.Echo(Item)
Next
Chel
Дата: 10.12.2002 18:49:59
при таком паттерне результат будет -
{{bbb}}
{{ooo}}
{{ddd}}
(его я уже сделал)
а мне надо -
aaaa
cccc
eee
jimmers
Дата: 10.12.2002 18:50:13
Это то, что Вам не нужно. Простите.

Workaround (тупо, конечно):

Option Explicit


Const NeverFoundChar = "."

Dim RegEx, Input, Item, Results

Set RegEx = New RegExp

Input = "aaaa{{bbb}}{{ooo}}cccc{{ddd}}eee"
RegEx.Pattern = "\{\{\w+\}\}"
RegEx.Global = True
Input = regEx.Replace(Input, NeverFoundChar)

Results = Split(Input, NeverFoundChar)

For Each Item In Results
WScript.Echo(Item)
Next
Chel
Дата: 10.12.2002 18:59:43
Оригинально :)

Спасибо, эт то что нужно!