Я почти новичок в регулярном выражении. Я пытаюсь разобрать выходы из CommandLineInterface (CLI). Обычно вывод состоит из содержимого файлов и папок по указанному пути. Следующие могут быть потенциальными различными форматами вывода.Регуляция регулярных выражений многострочной записи с необязательными символами новой строки
CLI Выходного формат 1
d:\ARCTest\_MyProject\Sources\CMCore\project.pj subsandbox <CRLF>
<space> d:\ARCTest\_MyProject\Sources\CMInterfaces\project.pj subsandbox <CRLF>
<space> d:\ARCTest\_MyProject\Sources\CMImplementation\project.pj subsandbox <CRLF>
<space> d:\ARCTest\_MyProject\Sources\Übersicht und fragen\project.pj subsandbox <CRLF>
<space> d:\ARCTest\_MyProject\Sources\CMAccess.sln archived 1.15 <CRLF>
<space> d:\ARCTest\_MyProject\Sources\übersicht und fragen.xlsx archived 1.1
Для формата 1, до второй линии вперед есть CRLF и капельное пространство (я обозначил это, используя символы <space>
и <CRLF>
Пожалуйста, обратите внимание, что это не часть фактического выхода). CRLF может не всегда присутствовать на выходе, другими словами, он является необязательным. Первые четыре - это пути к папкам mks, а последние два - файлы в mks. То, что я хочу, это все совпадения, указывающие на папки (те, которые заканчиваются в \ project.pj, включая project.pj), и соответствует этой точке в файлах (те, которые заканчиваются словом, заархивированным, за исключением архивированного текста).
Формата CLI Выход 2
CMCore/project.pj subproject <CRLF>
CMInterfaces/project.pj subproject <CRLF>
CMImplementation/project.pj subproject <CRLF>
Übersicht und fragen/project.pj subproject <CRLF>
CMAccess.sln archived <CRLF>
übersicht und frögen.xlsx archived
Для формата 2 до второй строки и далее есть CRLF (я обозначил это с помощью символа, пожалуйста, обратите внимание, что это не является частью фактического выпуска продукции). Первые четыре - это пути к папкам mks, а последние два - файлы в mks. То, что я хочу, это все совпадения, указывающие на папки (те, которые заканчиваются в \ project.pj, включая project.pj), и соответствует этой точке в файлах (те, которые заканчиваются словом, заархивированным, за исключением архивированного текста).
Я был почти успешным для анализа папок в обоих случаях с использованием выражения rgular ^([^\r\n]\w+.+?\.pj)
, но он не смог получить первую строку из выходного формата 1. Я не смог найти решение для анализа файлов в обоих форматы. Любое решение могло бы оказать большую помощь.
Пожалуйста, дайте мне знать, если мне нужно предоставить дополнительную информацию об этом.
Заранее благодарен, Joe.
У вас есть много потенциальных проблем с использованием некотируемые имен путей, которые содержат пробелы. Например, у вас будет очень трудное время с пути 'd: \ ARCTest \ _MyProject \ Sources \ this.pj - mess \ project.pj'. Можете ли вы изменить свой вывод, чтобы указать имена путей? –
@JimMischel Такой путь никогда не появится, так как я сказал, что эти записи читаются из CLI. Это пути к файлам и папкам, хранящимся на сервере MKS. Расширение .pj - это расширение по умолчанию, которое MKS использует для указания папки. –