У меня есть сценарий PowerShell, который вытаскивает строки, содержащие «.html», «.css» и так далеепоиска имен файлов в текстовых файлах
однако, что мне нужно, чтобы иметь возможность вырезать полное имя файл
используя шаблон .... весь образец возвращается пример
......... \. HTML возвращает
SRC = "blank.html"
мой ответ пришел в VB (с кучей работы и еще больше исследований), я хотел поделиться с вами всеми результатами, это не очень, но это работает. есть ли более простой способ?
Я прокомментировал код, чтобы помочь в понимании.
Private Sub find()
Dim reader As StreamReader = My.Computer.FileSystem.OpenTextFileReader(openWork.FileName)
Dim a As String
Dim SearchForThis As String
Dim allfilenames As New System.Text.StringBuilder
Dim first1 As String
Dim FirstCharacter As Integer
'Dim lines As Integer
SearchForThis = txtFind.Text
Do
a = reader.ReadLine 'reader.Readling
If a = "" Then
a = reader.ReadLine
End If
If a Is Nothing Then 'without this check the for loops run with bad data, but I can't check "a" without reading it first.
Else
For FirstCharacter = 2 To a.Length - SearchForThis.Length ' start at 2 to prevent errors in the ")" check
If Mid(a, FirstCharacter, SearchForThis.Length) = SearchForThis Then ' compare the line character by character to find the searchstring
If Mid(a, FirstCharacter - 1, 1) <> ")" Then ' checks for ")" just before the searchstring (a common problem with my .CSS finds)
For y = FirstCharacter To 1 Step -1
If Mid(a, y, 1) = Mid(a, FirstCharacter + SearchForThis.Length, 1) Then ' compares the character after searchstring till I find another one
Dim temp = Mid(a, y + 1, (FirstCharacter + SearchForThis.Length) - 1 - y) ' puts the entire filename into variable "temp"
allfilenames.Append(temp & Chr(13)) 'adds the contents of temp (and a carrage return) to the allfilenames stringbuilder
y = 1
Else
End If
Next
End If
End If
Next
End If
Loop Until a Is Nothing
Document.Text = allfilenames.ToString
reader.Close()
End Sub
(обновление для комментариев ... спасибо за вход)
каждой строки в поле поиска .css файл выглядит примерно так.
addPbrDlg.html:12:<link rel=stylesheet href="swl_styles-5.0o-97581885.css" TYPE="text/css">
addPbrDlg.html:727: html(getFrame(statusFrame).strErrorMessage).css('color','red');
для этого я хочу, чтобы вернуть
swl_styles-5.0o-97581885.css
но не возвращает
statusFrame) .strErrorMessage) .css
в основном я хочу, чтобы вырезать имена файлов из HTML-кода , но если я использую шаблон как
...................... ....... \. CSS
он вернется бы что-то вроде
т HREF = "swl_styles-5.0o-97581885.css
Наконец ... re - некоторые переменные, о которых мне не нужно беспокоиться (из-за моей личной ситуации), как я знаю, что все веб-страницы являются «.html», все изображения «.gif» содержат «.css» и «.js», файлы, которые я хочу потянуть. Но поскольку дизайнеры чрезвычайно единообразны, я знаю, что нет никаких файлов-сюрпризов (.jpg или .htm) Я также могу предположить, что если после имени файла есть одна кавычка, то будет одна цитата. то же самое с двойной цитатой.
Спасибо за ваш вклад до сих пор ... Я ценю ваше время и знания.
В чем именно ваш вопрос? – kukido
показать нам пример полной строки и то, что вы хотите извлечь из строки. –
вы правы. Я должен был привести пример некоторых строк поиска – shortcircuitaz