powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / regexp уменьшить количество вариаций при проверке
25 сообщений из 51, страница 2 из 3
regexp уменьшить количество вариаций при проверке
    #37236131
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
michael R,
исправление 10571843 , - пришлось добавить одно РВ. Иначе (возможно пока) - никак :(
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
?STWRE3("","")
~info~ 0 
~info;;ws~ 1 
    inexact accordance:     ~jp;;su~ 2 
~com~ 3 
    inexact accordance:     ~org;;ws;;net~ 4 
~org;;ws;;info~ 5 
~com;;net;;org~ 6 
    inexact accordance:     ~net;;org;;su;;net~ 7 
~net;;org;;su;;de;;gov;;jp~ 8 
~net;;org;;ws;;su;;de;;gov;;jp~ 9 
~su~ 10 
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
Function STWRE3(ByVal s0$, ByVal sText$, Optional ByVal sValSep = ",", Optional ByVal sTXTSep$)

Const iMMATCH% =  3           ' ==.SubMatches.Count-1 "чернового" RE
                            ' зависит ТОЛЬКО от паттерна (не считая машины RE)

Const SWS$ = "(?:\s|\s)"    ' аффикс паттерна "чернового" RE

Dim clt As Collection, re, mt, mt2
Dim i%, ii%, pos0%, pos%, pos1%, j%
Dim sFind$, sFind2$

' ### for test ONLY -->
    s0$ = "com,net,org,info,su,ws,de,gov,jp": sValSep = ","
    sText = _
    "info" + vbNewLine + _
    "ws;;" + vbNewLine + _
    ";;de" + vbNewLine + _
    "info;;ws" + vbNewLine + _
    "jp;;su" + vbNewLine + _
    "com" + vbNewLine + _
    "org;;ws;;net" + vbNewLine + _
    "org;;ws;;info" + vbNewLine + _
    "com;;net;;org" + vbNewLine + _
    "com;;org;;info;;btr" + vbNewLine + _
    "net;;org;;su;;net" + vbNewLine + _
    "net;;org;;su;;de;;gov;;jp" + vbNewLine + _
    "net;;info;;zzz;;su;;de;;jp" + vbNewLine + _
    "net;;org;;ws;;su;;de;;gov;;jp" + vbNewLine + _
    "su"
    sTXTSep = ";;"
' ### for test ONLY <--

sText = " " + sText + " "
If sTXTSep = "" Then sTXTSep = sValSep


re = Split(s0, sValSep)
Set clt = New Collection

' сборка паттерна "чернового" RE, заполнение коллекции "словами"
For i = UBound(re) To  1  Step - 1 
    clt.Add CInt(i), re(i)
    sFind = "|" + re(i) + sFind
Next
clt.Add CInt(i), re(i)
ii = UBound(re) -  1 

sValSep = "(?:" + sTXTSep + "|" + sTXTSep + ")"

sFind = "(" + re(i) + sFind + ")" + _
        "(" + sValSep + "(" + Mid$(sFind,  2 ) + "))*"

sFind = SWS + "(" + sFind + ")" + SWS                           ' паттерн1 ("черновой")
sFind2 = "((?!" + sTXTSep + "|" + sTXTSep + "))+" + sTXTSep     ' паттерн2 ("чистовой")

Erase re

' проверка на
Set re = CreateObject("VBScript.RegExp")
re.Global = - 1 : re.MultiLine = - 1 : re.IgnoreCase = - 1 : re.Pattern = sFind

Set mt = re.Execute(sText)
If mt.Count >  0  Then
    
    re.Pattern = sFind2

    ' обработка наборов "слов", прошедших "черновую" проверку
    For i =  0  To mt.Count -  1 
        pos0 =  0                            ' флаг полного соответствия "шаблону"
    
    If mt(i).SubMatches(iMMATCH) > "" Then ' в набор более одного слова
                                            ' (!) условие зависит от паттерна "чернового" RE
    
        pos0 = clt(mt(i).SubMatches( 1 ))
        pos1 = clt(mt(i).SubMatches(iMMATCH))
        
        ' проверка порядка следования "слов"
        If pos1 <= pos0 Then
            ' неверный порядок (по первому-последнему элементам)
            pos0 = - 1 
        ElseIf pos1 - pos0 >  1  Then
            
            Set mt2 = re.Execute(mt(i).SubMatches( 0 ) + sTXTSep)
            j = mt2.Count -  2 : ii =  1 
            
            Do While ii <= j
                
                pos = clt(mt2.matches(ii))
                If pos <= pos0 Or pos >= pos1 Then
                    pos0 = - 1 : Exit Do
                
                ElseIf ii < j Then
                
                    pos0 = pos: pos = clt(mt2.matches(j))
                    If pos <= pos0 Or pos >= pos1 Then
                        pos0 = - 1 : Exit Do
                    Else
                        pos1 = pos
                    End If
                End If
                
                ii = ii +  1 : j = j -  1 
            Loop ' While ii <= j
            
        End If ' pos1 < pos0
    End If ' mt(i).SubMatches(iMMATCH) > ""
    
    sFind = "~" + mt(i).SubMatches( 0 ) + "~" + CStr(i)
    'If pos0 >= 0 Then Debug.Print sFind Else Debug.Print vbTab; "inexact accordance: ", sFind
    If pos0 <  0  Then Debug.Print vbTab; "inexact accordance: ",
    Debug.Print sFind
    
    Next i ' mt.Count
Else
    Debug.Print "WRONG TEXT"
End If

Set clt = Nothing: Set mt = Nothing: Set mt2 = Nothing: Set re = Nothing
End Function
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37236210
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нее не работает

порядок не проверяется
да и можно повторные имена вставлять
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37236257
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
michael R...а вот остальные слова в наборе имеют плавающую позицию
можно ли и им установить чёткие позиции ?Если всем "словам" в шаблоне задать чёткие позиции, - получим в качестве шаблона _константу_, - регулярные выражения становятся не нужны.

Если чёткие позиции определять только для части "слов", то надо уточнить
- как поступать в том случае, если длина тестируемого набора, частично совпадающего с шаблоном, будет меньше,
чем позиция крайнего правого "(за)фиксированного" слова;
- как искать в наборах с "фиксированными" словами .... проще на примерах:
набор "правильных" слов: "s1, f1 , s2, s3, s4, f2 , f3 , s5, s6, s7, s8", где fN - "фиксированные", sK - "плавающие" слова
? следует ли "фиксацию" понимать как абсолютные координаты (f1 нету на второй позиции - набор тест не прошел),
или как относительные (относительно чего, блин...)
? "плавающие" слова искать только в границах "фиксаторов" или по всему набору (s4 только в границах позиций f1,f2 или ...)
? etc
Пардон за "многабукаф"...

Без иронии:
99% процентов проблем решаются одним простым вопросом: нафига?(с)
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37236264
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
michael Rнее не работает

порядок не проверяется
да и можно повторные имена вставлятьТестовый пример, а то у меня глаз уже замылился.
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37236280
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища

с константой я и так понял уже
только там несколько тысяч вариаций

не заморачивайся так тоже нормально
спасибо
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37236313
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
michael R,
я же говорил, - накатило. Пока не заработает - спать не смогу :)
А тестовый пример - это две же всего две строки:
1)список "правильных" слов в правильном порядке
2)строка проверяемого текста об которую спотыкается функция.
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37236334
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот все слова
com;;net;;org;;info;;biz;;us;;mobi;;tv;;ws;;me;;name;;cc;;tel;;other


каждое появляется не больше одного раза
и хотелось бы что порядок появления в проверяемом тексте был таким же
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37236369
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
michael R,
добрый :)
А строка проверяемого текста об которую функия спотыкается где-то в буфере обмена застряла ?
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37236393
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
michael Rс константой я и так понял уже
только там несколько тысяч вариацийТогда это не константа.
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37236412
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот все слова
com;;net;;org;;info;;biz;;us;;mobi;;tv;;ws;;me;;name;;cc;;tel;;other


вариантов уйма

примеры проверяемого текста - правильный текст
com;;net;;org
com;;net;;org;;tel
com;;org
net;;org
other
................

примеры проверяемого текста - неправильный текст
com;;com;net;;org
com;;net;;org;;net
net;com;;org
net;;org;;
;;other;;
.......................

константа я имел ввиду что бы перечислить возможные варианты через |
ну и ещё если пусто ничего не выбранно
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37236803
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
michael R,
и снова здравствуйте!
функционально ничего нового
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
' **********************************************
Function STWRE4(ByVal s0$, ByVal sText$, _
                Optional ByVal sValSep = ",", Optional ByVal sTXTSep$)

On Error GoTo Err_Exit_F

Const iMMATCH% =  3           ' ==.SubMatches.Count-1 "чернового" RE
                            ' зависит ТОЛЬКО
                            ' от паттерна (не считая машины RE)

Const SWS$ = "(?:\s)"       ' аффикс паттерна "чернового" RE

Dim clt, re, mt, mt2
Dim i%, ii%
Dim pos0%, pos%, pos1%, j%
Dim sFind$, sFind2$


sText = " " + sText + " "
If sTXTSep = "" Then sTXTSep = sValSep

re = Split(s0, sValSep)
Set clt = New Collection

' сборка паттерна "чернового" RE, заполнение коллекции "словами"
For i = UBound(re) To  1  Step - 1 
    clt.Add CInt(i), re(i)
    sFind = "|" + re(i) + sFind
Next
clt.Add CInt(i), re(i)


sValSep = "(?:" + sTXTSep + "|" + sTXTSep + ")"

sFind = "(" + re(i) + sFind + ")" + _
        "(" + sValSep + "(" + Mid$(sFind,  2 ) + "))*"

sFind = SWS + "(" + sFind + ")" + SWS                       ' паттерн "черновой"
sFind2 = "(?:" + sTXTSep + ")(.+?)(?=" + sTXTSep + ")"      ' паттерн2 "чистовой"


Erase re

' поиск соответствия "черновому" паттерну по всему тексту
Set re = CreateObject("VBScript.RegExp")
re.Global = - 1 : re.MultiLine = - 1 : re.IgnoreCase = - 1 
re.Pattern = sFind                          ' поиск по "черновому" паттерну

Set mt = re.Execute(sText)
If mt.Count >  0  Then
    
    re.Pattern = sFind2                     ' переключение RE на "чистовой" паттерн

    ' обработка наборов "слов", прошедших "черновую" проверку
    For i =  0  To mt.Count -  1 
        pos0 =  0                            ' флаг полного соответствия "шаблону"
    
    If mt(i).SubMatches(iMMATCH) > "" Then
    ' в набор более одного слова (!) условие зависит от паттерна "чернового" RE
    
        pos0 = clt(mt(i).SubMatches( 1 ))             ' первое слово в "черновом" наборе
        pos1 = clt(mt(i).SubMatches(iMMATCH))       ' последнее слово в "черновом" наборе
        
        ' проверка порядка следования "слов"
        If pos1 <= pos0 Then
            ' неверный порядок (по первому-последнему элементам)
            pos0 = - 1 
            
        ElseIf pos1 - pos0 =  1  Then
            ' набор должен состоять из двух элементов
            If mt(i).SubMatches( 1 ) + sTXTSep + _
                 mt(i).SubMatches(iMMATCH) <> mt(i).SubMatches( 0 ) Then _
            pos0 = - 1 
        
        Else
            
            sText = sTXTSep + mt(i).SubMatches( 0 ) + sTXTSep
            Set mt2 = re.Execute(sFind)
            j = mt2.Count -  2 : ii =  1 
            
            Do While ii <= j
                
                pos = clt(mt2(ii).SubMatches( 0 ))
                If pos <= pos0 Or pos >= pos1 Then
                    pos0 = - 1 : Exit Do
                
                ElseIf ii < j Then
                    pos0 = pos: pos = clt(mt2(j).SubMatches( 0 ))
                    If pos <= pos0 Or pos >= pos1 Then
                        pos0 = - 1 : Exit Do
                    Else
                        pos1 = pos
                    End If
                End If
                
                ii = ii +  1 : j = j -  1 
            Loop ' While ii <= j

        End If ' pos1 <= pos0
    End If ' mt(i).SubMatches(iMMATCH) > ""
    
    sFind = "~" + mt(i).SubMatches( 0 ) + "~" + CStr(i)
    If pos0 <  0  Then Debug.Print vbTab; "inexact accordance: ",
    Debug.Print sFind
    
    Next i ' mt.Count
Else
    Debug.Print "WRONG TEXT"
End If

Norm_Exit_F:
Set clt = Nothing: Set mt = Nothing: Set mt2 = Nothing: Set re = Nothing
Exit Function

Err_Exit_F:
    Select Case Err.Number
    Case  457 : sFind = "повтор слова в словаре: ~" + re(i) + "~"
    Case Else
        sFind = "RT error: '" + Err.Number + "'" + vbNewLine + Err.Description
    End Select
    Debug.Print "(!) ", sFind
    Resume Norm_Exit_F
End Function
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37236952
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
s0$ = "com;;net;;org;;info;;ws;;biz;;tel;;other"
sText$ = "com;;org;;net"
sValSep = ";;"

s0$ = "com;;net;;org;;info;;ws;;biz;;tel;;other"
sText$ = "com;;net;;net"
sValSep = ";;"


эти варианты ошибочны
но они отрабатывают как рабочие

думаю таких неправильных вариантов не мало

...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37237040
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
@test = (
	"com;;net;;org",
	"com;;org;;net",
	"com;;net;;net",
	";;",
	"net;;",
	"abc;;ws",
	";;net",
	"com,org"
);

@words = ("com", "net", "org", "info", "ws", "biz", "tel", "other");
$separator = ";;";
$pattern = '^(' .  join (")?((?<=.)(?<!$separator)$separator(?=.)(?!^$separator))?(", @words) . ')?$';

 foreach  $t (@test) {
	 if ($t !~ $pattern) {
		 print  "$t\n";
	}
}
Все прекрасно работает...
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37237043
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
michael Rдумаю таких неправильных вариантов не мало
Код: plaintext
1.
2.
3.
4.
5.
6.
?STWRE4("com;;net;;org;;info;;ws;;biz;;tel;;other", "com;;org;;net", ";;")
    inexact accordance:     ~com;;org;;net~ 0 


?STWRE4("com;;net;;org;;info;;ws;;biz;;tel;;other", "com;;net;;net", ";;")
    inexact accordance:     ~com;;net;;net~ 0 
Уффф ...
inexact accordance == неполное соответствие

при соответствии выводит набор слов с индексом в массиве "полусовпавших"
Код: plaintext
1.
?STWRE4("com;;net;;org;;info;;ws;;biz;;tel;;other", "com;;net;;other", ";;")
~com;;net;;other~ 0 
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37237057
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlВсе прекрасно работает... чем такую красотЫщу к VB прикрутить?
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37237080
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаWhite OwlВсе прекрасно работает... чем такую красотЫщу к VB прикрутить?я уже говорил, что VB убог? :) Ну нету в Микрософтовской библиотеке регулярных выражений look-around шаблонов. Ну нееееетуууу.... Не доросли еще мелкомягкие до такого.

A на VB тоже самое можно решить намноооооого проще без регулярок вообще:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
dim test( 8 )
test( 0 ) = 	"org;;other"
test( 1 ) = 	"com;;net;;org"
test( 2 ) =	"com;;org;;net"
test( 3 ) =	"com;;net;;net"
test( 4 ) =	";;"
test( 5 ) =	"net;;"
test( 6 ) =	"abc;;ws"
test( 7 ) =	";;net"
test( 8 ) =	"com,org"

for i=lbound(test) to ubound(test)
	if checkAndFail(test(i)) then wscript.echo test(i)
next


function checkAndFail(txt)
	dim i
	separator = ";;"
	etalon = "com;;net;;org;;info;;ws;;biz;;tel;;other"
	checkAndFail=false
	arr = split(txt, separator)

	if ubound(arr)= 0  or len(arr(lbound(arr)))= 0  or len(arr(ubound(arr)))= 0  then
		checkAndFail=true
		exit function
	end if

	pos =  0 
	for i=lbound(arr) to ubound(arr)
		pos = instr(pos+ 1 , etalon, arr(i))
		if pos= 0  then
			checkAndFail=true
			exit for
		end if
	next
end function

Уж сколько раз твердили миру: Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems.
Ну нельзя их пихать во все дырки, нельзя... Бессмысленно это.
Одно дело если человек пишет на Перле, там регулярные выражения самые развитые. Но пытаться заткнуть ими нелюбовь к InStr...
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37237083
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или чуть более универсально:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
dim test( 8 )
test( 0 ) = 	"org;;other"
test( 1 ) = 	"com;;;;net;;org"
test( 2 ) =	"com;;org;;net"
test( 3 ) =	"com;;net;;net"
test( 4 ) =	";;"
test( 5 ) =	"net;;"
test( 6 ) =	"abc;;ws"
test( 7 ) =	";;net"
test( 8 ) =	"com,org"

for i=lbound(test) to ubound(test)
	if checkAndFail(test(i)) then wscript.echo test(i)
next


function checkAndFail(txt)
	dim i
	separator = ";;"
    etalon = "com;;net;;org;;info;;ws;;biz;;tel;;other"
	checkAndFail=false
	arr = split(txt, separator)

	if ubound(arr)= 0  then
		checkAndFail=true
		exit function
	end if

	pos =  0 
	for i=lbound(arr) to ubound(arr)
		if len(arr(i))= 0  then
			checkAndFail=true
			exit for
		end if

		pos = instr(pos+ 1 , etalon, arr(i))
		if pos= 0  then
			checkAndFail=true
			exit for
		end if
	next
end function
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37237089
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl

в случаи одиночных слов не работает без разделителя

...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37237091
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owlя уже говорил...
Говорил . Знаю, чего где нет. Спрашивал "чем прикрутить?".
Решение красивое с InString. Одно условие лишнее: Ubound(arr)=0.
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37238932
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаСпрашивал "чем прикрутить?".В принципе, perl очень легко встраивается в любое приложение. Так что вполне можно взять свой любимый VB, прикрутить к нему perl (ActivePerl наверное) как скриптовый расширитель и горя не знать.
Инструкция по прикурчиванию, как ни странно, лежит в официальной документации: http://perldoc.perl.org/perlembed.html
Там для C конечно же, но ничего особо сложного для перевода этого на VB я не вижу.

скукотищаОдно условие лишнее: Ubound(arr)=0.Это уже мелочи которые легко исправить.
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37238967
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael RWhite Owl

в случаи одиночных слов не работает без разделителя

Убери проверку на ubound(arr)=0 и все заработает. И вообще, там всего скрипта то меньше тридцати строк, неужели так сложно понять как оно работает и выловить баги?
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37241619
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а чтобы Option Explicit не ругался, пишем так:
Dim reg As Object
????
Каюсь, давали ссылку раньше по возможностям регулярки, где прописаны все специальные знаки объекта, потерял
Можно ещё раз выложить. Спасибо
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37241621
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет у меня есть ссылка http://artefact.lib.ru/design/text_khozyainov.shtml но помому это чуть не то, что надо
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37241723
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Убери проверку на ubound(arr)=0 и все заработает. И вообще, там всего скрипта то меньше тридцати строк, неужели так сложно понять как оно работает и выловить баги?

ну вообщем понятно
спасибо
хотелось конечно именно регуляркой
но ладно так тоже пойдёт с пивом
...
Рейтинг: 0 / 0
regexp уменьшить количество вариаций при проверке
    #37241771
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович ЭндрюКаюсь, давали ссылку раньше по возможностям регулярки, где прописаны все специальные знаки объекта, потерял
Можно ещё раз выложить. Спасибо VBScript.RegExp
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 2 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / regexp уменьшить количество вариаций при проверке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]