В Excel я хочу изолировать сценарии огурца от (написанного на Java) файла объектов. Я ищу массив, в котором каждый элемент представляет собой один сценарий.
Я придумал несколько регулярных выражений, которые делают то, что я хочу, в Rubular и Regex101 с (по-видимому) точно таким же текстом, нокогда я выполняю «.Execute» из моего макроса Excel, возвращается весь файл.
Это образец текста:
@ optionFeatureLevel
Tag Feature:какая-то функция
Сценарий: сценарий1
Что-то дано
Когда что-то
Тогда что-то
@ optionTag
Сценарий: сценарий2
Если дано что-то еще
Когдачто-то еще
Затем что-то еще
Краткое описание сценария: сценарий3
Дано еще одно что-то
Когда еще одно что-то
Затем еще одно что-то
Функция:некоторые функцииЭто функция, которую я написал, у меня есть «Set arrayOrResults = returnAllStringsMatchingRegEx», получающий ее на другом конце:
Function returnAllStringsMatchingRegEx(sourceString As String, pattern As String) As Variant
Dim regEx As New RegExp
With regEx
.Global = True
.MultiLine = True
.ignoreCase = True
.pattern = pattern
End With
If regEx.Test(sourceString) Then
Set returnAllStringsMatchingRegEx = regEx.Execute(sourceString)
Else
Set returnAllStringsMatchingRegEx = Nothing
End If
End Function
Вот как я ее называю:
Set arrayOfScenarios = returnAllStringsMatchingRegEx(fetchFileContent(oFile.Path), _
"Scenario( Outline)?:((.+)(\n|\r|\r\n|$))+")
Для тВведенные выше данные, я ожидаю, что «arrayOfResults» будет иметь 3 элемента:
Первый элемент:
Сценарий: script1
Что-то дано
Когда что-то
что-то
Второй элемент:
Сценарий: сценарий2
Дано другое что-то
Когда другое что-то
Затем другое что-то
Третий элемент:
Краткое описание сценария: сценарий3 Дано еще одно что-то Когда еще что-то Затем еще одно что-то
Фактическим результатом является один элемент, содержащий:
Сценарий: сценарий1
Задано что-то
Когда что-то
Тогда что-то
@ optionTag
Сценарий: сценарий2
Дано другое что-то
Когда другоечто-то
потом еще что-то
набросок сценария: сценарий3
дано еще что-то
когда еще что-то
потом еще что-то