johnjsm Ответов: 2

Заменить строку между обратной косой чертой


Всем Привет.
Мне действительно нужна помощь.
Мне нужно заменить строку между вторым и третьим обратным слэшем. Всегда будет второй и третий удар.

IncludeFiles = \\mckirlwebpd3srv\CDODFiles

Заранее спасибо за любую оказанную помощь

Что я уже пробовал:

ничего не пробовал пока не знаю с чего начать

2 Ответов

Рейтинг:
10

OriginalGriff

Попробуй:

Imports System.Text.RegularExpressions
...
Public Dim regex As Regex = New Regex( _
      "(?<=\\\\).+(?=\\)", _
    RegexOptions.Multiline _
    Or RegexOptions.Singleline _
    Or RegexOptions.CultureInvariant _
    Or RegexOptions.Compiled _
    )
...
Dim result As String = regex.Replace(strInput,strReplacement)


Цитата:

Я новичок в регулярном выражении и должен был дать полную строку
IncludeFiles = \\mckirlwebpd3srv\CDODFiles\71669\ClaimReviewCustomizationGuideV61.pdf


Выход, который мне нужен, это
IncludeFiles = p:\CDODFiles\71669\ClaimReviewCustomizationGuideV61.pdf
А! Измените строку регулярного выражения на:
Public Dim regex As Regex = New Regex( _
      "\\\\.+(?=\\)", _


johnjsm

Входная строка будет иметь разную форму время от времени, поэтому я не буду знать, какой будет входная строка

OriginalGriff

Это нормально - при условии, что бит, который вы хотите заменить, начинается с "\\" и заканчивается"\", он будет работать: в этом вся идея регулярного выражения. Попробуй и увидишь!

Если ваша входная строка не всегда имеет такой формат, то вам нужно посмотреть на целую кучу примеров подлинных входов и найти некоторое "сходство", которое можно использовать в качестве основы для проверки - или никакая автоматическая система не будет работать!

johnjsm

Я новичок в регулярном выражении и должен был дать полную строку
IncludeFiles = \\mckirlwebpd3srv\CDODFiles\71669\ClaimReviewCustomizationGuideV61.pdf

Выход, который мне нужен, это
IncludeFiles = p:\CDODFiles\71669\ClaimReviewCustomizationGuideV61.pdf

OriginalGriff

Вы должны быть точны, когда говорите нам вещи! :смеяться:
См. обновленный ответ.

johnjsm

Наверное, я взволнована тем, что сегодня моя пятница, и не могу дождаться, чтобы уйти с работы.
Я попробовал обновить следующее

IncludeFiles = \\mckirlwebpd3srv\CDODFiles\71669\ClaimReviewCustomizationGuideV61.pdf

Я получаю этот вывод
\\mckirlwebpd3srv\CDODFiles\71669

OriginalGriff

Покажите мне точный код, который вы использовали, чтобы получить это - я получаю именно то, что ожидал!

johnjsm

Я тестировал его в конструкторе регулярных выражений. Я введу код и проверю его. Извините регулярное выражение сбивает меня с толку

johnjsm

Dim strInput As String = "IncludeFiles = \\mckirlwebpd3srv\CDODFiles\71669\ClaimReviewCustomizationGuideV61.pdf"
Dim strReplacement As String = "p:\"
Дим регулярные выражения, регулярные выражения = новое регулярное выражение( _
"\\\\.+(?=\\)", _
Регулярные выражения.Многострочный _
Или Регулярные Выражения.Однострочный _
Или Регулярные Выражения.CultureInvariant _
Или Регулярные Выражения.Составленный _
)
Dim result As String = regex.Replace(strInput, strReplacement)

MsgBox(результат)

OriginalGriff

Я вижу проблему! Вам нужно "как можно меньше" там:
"\\\\.+?(?=\\)", _

Получить копию Экспрессо[^] - это бесплатно, и он проверяет и генерирует регулярные выражения.

johnjsm

Это работает. Огромное спасибо

OriginalGriff

Всегда пожалуйста!

Рейтинг:
1