0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 4
1

Шаблон для регулярного выражения

10.10.2015, 13:37. Показов 1855. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!!!
Решил попробовать сам написать шаблон для регулярного выражения и столкнулся вот с проблемой вывода результата, в значениях переменных вижу, что находит "i", а выводи почему-то 0. Что я делаю не так?
Visual Basic
1
2
3
4
5
Sub testreg2()
Set re = CreateObject("vbscript.regexp"): re.pattern = "(?:[s](\D))": re.Global = True
 Set m = re.Execute("basic")
 Debug.Print Val(m(0).submatches(0))
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2015, 13:37
Ответы с готовыми решениями:

Приоритет для регулярного выражения
Приветствую!!! Помогите, пожалуйста, доделать регулярку. Задача на примере: Пример 1....

Доработка шаблона регулярного выражения
Здравствуйте! Пытаюсь написать шаблон для получения из значений типа: Ф-2-448-Н.КАЗАНИЩЕ...

Как вывести результат работы регулярного выражения?
Приветствую, комрады. Стандартный кусок кода, показывающий работу с регекспом: Sub qwe() Dim...

Шаблон регулярного выражения для ВВ-кодоподобных тегов
Суть задачи: Есть, положим, фрагмент документа в спецформате: khgk jhg jhj kf Правила таковы:...

3
132 / 108 / 22
Регистрация: 23.06.2015
Сообщений: 339
10.10.2015, 22:04 2
добрый вечер,удобней протестировать на листе Excel-ближе к более сложным примерам;например,так,сразу видим m(0).Value это si
m(0).submatches(0) это i,далее применение функции Val к любому буквенному символу это всегда 0, применение здесь символьного класса (квадратные скобки ) не обязательно,также как свойства Global.
Visual Basic
1
2
3
4
5
6
7
8
9
Sub testreg2()
     Dim t1$, re As Object, m As Object
      t1 = Range("A1")
      Set re = CreateObject("vbscript.regexp"): re.Pattern = "(?:[s](\D))"
      Set m = re.Execute(t1)
      Range("B1") = m(0).Value 'si
      Range("C1") =  m(0).submatches(0)'i
      Range("D1") = Val(m(0).submatches(0)) '0
End Sub
Вложения
Тип файла: xls example_12_12_test.xls (37.0 Кб, 4 просмотров)
2
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 4
10.10.2015, 22:18  [ТС] 3
Спасибо огромное за внимание. Так вот в чем проблемка-то была. А подскажите какая функция или метод из такой коллекции возвращает значения из символьных подстрок?

Добавлено через 1 минуту
Все понял. просто submatches
0
132 / 108 / 22
Регистрация: 23.06.2015
Сообщений: 339
10.10.2015, 22:52 4
доброго времени суток,протестируйте для начала,такой макрос,если у вас его нет.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub help1()
       Dim Str$
      Set objRegExp = CreateObject("VBScript.RegExp")
      Str = "One = 111" & vbCrLf & "Two = 222" & vbCrLf & "Three = 333"
       objRegExp.Pattern = "Two = (.+\r)"
       Set objMatches = objRegExp.Execute(Str)
       Set objMatch = objMatches.Item(0)
         MsgBox Trim(objMatch.Value)
     Set objSubmatches = objMatch.Submatches
  For i = 0 To objSubmatches.Count - 1
        MsgBox Trim(objSubmatches.Item(i))
  Next
End Sub
0
10.10.2015, 22:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2015, 22:52
Помогаю со студенческими работами здесь

Шаблон регулярного выражения
последовательность символов, удовлетворяющая условиям: • первым символом является либо «;» (точка...

Составить шаблон регулярного выражения
Привет всем! Начал изучать регулярные выражения, но не понял, как сделать задание. С...

Шаблон регулярного выражения с использованием символьного класса Posix
Доброго всем времени суток. Помогите, пожалуйста, разобраться, как создать шаблон регулярного...

Pattern для регулярного выражения
Добрый день, прошу помощи в составлении регулярного выражения(pattern). Нужно из строки вычленить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru