Как сопоставить несколько шаблонов регулярных выражений в нескольких файлах и создать файл журнала?
Я хочу найти некоторые шаблоны регулярных выражений в файлах (*. txt), которые находятся внутри папки, путь к которой я указал в текстовом поле, и папка содержит другие подпапки с файлами txt в виде 12345-2031-30201\2031\30201\txt\110.txt и если шаблон совпадает даже в одном файле, то строка записывается в файл журнала, который создается внутри папки, путь к которой я указал в текстовом поле, а затем переходит к следующему регулярному выражению и так далее.
Проблема, с которой я сталкиваюсь, заключается в том, что файл журнала показывает только первый совпадающий шаблон и не показывает, совпадали ли другие шаблоны в каком-либо файле или нет. В основном происходит то, что программа открывает, скажем, первый файл и ищет первый шаблон, и она находит совпадение, поэтому она записывает текст, связанный с этим шаблоном "check figure link", и это все, что есть в файле журнала, но тот же файл(и некоторые другие файлы) действительно соответствует второму и третьему шаблону, но он не показывает тексты, связанные с этими шаблонами, такие как "check table link" и "check section link".
Кто-нибудь может помочь?
Что я уже пробовал:
Dim patterns = New List(Of String()) From { ({"Check figure link", "(?<!>)(figure|fig\.|figs\.|figures) (\d+)"}), ({"Check table link", "(?<!>)(table|tab\.|tabs\.|tables) (\d+)"}), ({"Check section link", "(?<!>)(section|sec\.|sect\.|section) (\d+)"}), ({"Check space", "</inline>w+"}),} Dim output = From pattern In patterns.AsParallel Let regEx = New Regex(pattern(1), RegexOptions.Compiled) From tFile In Directory.EnumerateFiles(TextBox1.Text, "*.txt", SearchOption.AllDirectories) Where tFile Like "*\#*\#*\#*\txt\#*.txt" AndAlso regEx.IsMatch(File.ReadAllText(tFile)) Take 1 Select pattern(0) File.WriteAllLines(TextBox1.Text.TrimEnd("\"c) & "\Checklist.log", output) MsgBox("Process Complete")
Richard Deeming
Вы сказали нам, что вы хотите, чтобы ваш файл журнала содержал, но вы не сказали нам, какие выходные данные вы получаете, когда запускаете свой код.
Member 12692000
В основном мне нужен список, какие паттерны совпадали хотя бы один раз по крайней мере в одном файле, так как у меня есть около 200+ паттернов для поиска в файлах, но я не хочу проходить через все эти паттерны, я просто хочу найти совпадающие паттерны в моих файлах, а затем изменить их соответствующим образом.
Richard Deeming
Это все еще не говорит нам, какие выходные данные вы получаете, когда запускаете свой код.
Member 12692000
Выходные данные - это файл журнала, который создается при сопоставлении шаблона, а затем записывает текст, связанный с этим шаблоном, в файл журнала. Это все проясняет?
Richard Deeming
Нет.
Вы сказали нам, что вы хотеть случаться.
Вы показали нам код, который сейчас используете.
Но ты не рассказал нам, что происходит, когда вы запускаете этот код.
Member 12692000
Вы спрашиваете, что происходит не так в моем коде?
Richard Deeming
Я спрашиваю, какие выходные данные производит ваш код в настоящее время и чем они отличаются от выходных данных, которые вы хотели бы получить.
Patrice T
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.