Регулярное выражение, чтобы заменить имя файла в полном пути к файлу, используя C#C#

Место общения программистов C#
Ответить
Anonymous
 Регулярное выражение, чтобы заменить имя файла в полном пути к файлу, используя C#

Сообщение Anonymous »

I have a batch file(.bat) whose contents looks something like below


cd C:\RunningDir\TestResults vstest.console.exe
C:\Dir1\Dir2\ProductBin\TestBin\bin\Debug\BVTTests.orderedtest
/Settings:c: \dir1\dir2\ productbin\testbin\bin\debug\ questcodedui.testsettings
/logger: trx vstest.console.exe
c: \ dir1 \ dir2 \ productbin \ testbin \ bin \ devug \ function_tests_1. dir2 \ productbin \ testbin \ bin \ devug \ devugug_tests_1.ordestestestestests_1 /dir2 \ /Settings:c: \dir1\dir2\ productbin\testbin\bin\debug\ questcodedui.testsettings
/logger: trx vstest.console.exe
c: \ dir1 \ dir2 \ productbin \ testbin \ bin \ devug \ endtoEndtests_parts_port.moreest.> /Settings:c:dir1\dir2\ productbin\testbin\bin\debug\ questcodedui.testsettings
/logger: trx < /p>
< /blockquote>

Теперь мне нужно найти "bvttestes. "Functional_tests_1" с "function_tests_3", так что файл после замены выглядел как < /p>


Cd c: \ rongdir \ testresult /Settings:c:dir1\dir2\ productbin\testbin\bin\debug\ questcodedui.testsettings
/logger: trx vstest.console.exe
c: \ dir1 \ dir2 \ productbin \ testbin \ bin \ devug \ devug \ function_testest_3. dir2 \ productbin \ testbin \ bin \ debug \ devuge_testestestestestestestestestestestest_3.dertestestestestestestestest_3.ordestest. /Settings:c: \dir1\dir2\ productbin\testbin\bin\debug\ questcodedui.testsettings
/logger: trx vstest.console.exe
c: \ dir1 \ dir2 \ productbin \ testbin \ bin \ devug \ endtoEndtests_parts_port.moreest.> /Settings:c:dir1\dir2\ productbin\testbin\bin\debug\ questcodedui.testsettings
/logger: trx < /p>
< /blockquote>

Я написал код, что ниже, но он заменяет все строки между ..... \ с помощью спины. Пожалуйста, помогите мне с правильным регулярным выражением. < /p>

var batchReader = new StreamReader(File.OpenRead(@"C:\SystemSetup\Runner.bat"));
string linevalue = String.Empty;
string pattern = @"([^\/]*.)";
Regex rgx = new Regex(pattern);
string replacement = "SmokeTests.orderedtest";
while(!batchReader.EndOfStream)
{
linevalue = batchReader.ReadLine();
if(linevalue.Contains("vstest"))
{
string newone = rgx.Replace(linevalue, replacement);
}

}
< /code>

Но вывод SmokeTests.orderedTestSmoketStes>

Подробнее здесь: https://stackoverflow.com/questions/300 ... ng-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»