Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Сравнение строкина соответствие со списком символо


Автор: Georg4 9.12.2008, 16:06
Народ, есть ли в VBscript нечто похожее на Like в VB?
Чтобы провенить, допустим, только ли цифры в строке...

Автор: Akina 9.12.2008, 16:18
Похожего нет. Зато есть Match Object.
PS. В VB6 Match тоже есть...

Автор: Georg4 9.12.2008, 16:22
А как с его правильно употребить?

Автор: Akina 9.12.2008, 16:26
Ну, например, почитав документацию в MSDN и посмотрев приведенный там пример...

Автор: Georg4 9.12.2008, 16:37
Да это понятно...
Для меня VB не шибко знакомый язык, а тут надо эти самые скрипты... вот и работаю методом вставки похожего и доводки до нужного. И честно ничего я не понял в этой функции 
Function RegExpTest(patrn, strng)
 из МСДНа smile

Автор: Akina 9.12.2008, 16:48
А что там собсно непонятного?
Создается объект RegExp, устанавливается свойство pattern (что собсно искать - то, что у тебя в литерале Like), затем выполняется (Execute) поиск этого шаблона по строке string. В результате возвращается коллекция найденных соответствий. Можно посмотреть её Count... если он нулевой, то совпадений не найдено.

Автор: Georg4 9.12.2008, 17:00
тоесть считают вхождения patrn в strng?

проверяется на вхождение всего patrn или любого символа из него?

А если надо проверить содержатся ли  в strng скажем цифры от 0 до 5, и если хотя бы одна содержится, то возвращаем 0

ну как в делфи проверяется   if not (s[i] in ['0'..'9']) then begin  допустим

Автор: Akina 10.12.2008, 17:44
Цитата(Georg4 @  9.12.2008,  18:00 Найти цитируемый пост)
проверяется на вхождение всего patrn или любого символа из него?

Почитайте основы регулярных выражений, а?

Автор: mihanik 13.12.2008, 18:43
Пример поиска в текстовом файле...

Код

' Match Content in a File Against a Regular Expression

' Windows Server 2003 : Yes
' Windows XP : Yes
' Windows 2000 : Yes
' Windows NT 4.0 : Yes
' Windows 98 : Yes


strFileName = "C:\scripts\test.txt"
Set objFS = CreateObject("Scripting.FileSystemObject")

Set objTS = objFS.OpenTextFile(strFileName)
strFileContents = objTS.ReadAll
WScript.Echo "Searching Within: "
WScript.Echo strFileContents
objTS.Close

Set objRE = New RegExp
objRE.Global     = True
objRE.IgnoreCase = False
objRE.Pattern    = WScript.Arguments(0)

Set colMatches = objRE.Execute(strFileContents)
WScript.Echo vbNewLine & "Resulting Matches:"
For Each objMatch In colMatches
   WScript.Echo "At position " & objMatch.FirstIndex & " matched " & objMatch.Value
Next

Автор: mihanik 14.12.2008, 16:14
http://technet.microsoft.com/ru-ru/magazine/cc462811.aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)