RegEx запрос текстового файла не находит совпадений - PullRequest
0 голосов
/ 18 января 2019

Следующий код предназначен для открытия текстового файла и поиска любых совпадений в списке строк, а затем вывода количества найденных результатов. По какой-то причине он всегда "находит" 0.

validcards=array("NVIDIA GRID K140Q","AMD FirePro S7150","VMware SVGA 3D")

textFile = fso.opentextfile("_cards.txt",1,0,1).readall
set fso=nothing

set query = new regexp
with query
    .global=true
    .multiline=true
    .ignorecase=true
    .pattern="^.*?" & join(validcards,".*?") & ".*?$"
end with

counter = 0
set results = query.execute(textFile)
for each result in results
    stdout.WriteLine escape(result)
    counter = counter + 1
next

Когда я вывожу counter, оно всегда равно нулю. Чего мне не хватает? Вот как выглядит текстовый файл:

Name            
VMware SVGA 3D

Текстовый файл генерируется с использованием wmic path win32_VideoController get name > _cards.txt


UPDATE

В отчаянии я просто распечатал файл после его загрузки. Это выглядит так:

 ■N a m e
 V M w a r e   S V G A   3 D

Мне удалось это исправить, изменив строку OpenTextFile на textFile = fso.opentextfile("_cards.txt",1,0,-1).readall. Однако регулярное выражение по-прежнему не работает.

1 Ответ

0 голосов
/ 18 января 2019

Я изменил шаблон на следующий, и теперь он, кажется, работает нормально:

.pattern="^.*(" & join(validcards,"|") & ").*$"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...