Как вырезать строку из конца в UIPATH - PullRequest
0 голосов
/ 06 июня 2019

У меня есть эта строка: "C: \ Procesos \ rrhh \ CorteDocumentos \ Cortados \ 10001662-1_20060301_29_1_20190301.pdf", и я пытаюсь получить эту часть: "20190301".Проблема в том, что длина не всегда одинакова.Это будет: "9001662-1_20060301_4_1_20190301".

Я пробовал это: item.ToString.Substring (66,8), но иногда это не работает.

Что я могуделать?.

Ответы [ 3 ]

1 голос
/ 07 июня 2019

Этого можно добиться с помощью простых регулярных выражений, что дает дополнительное преимущество, включающее проверку шаблона.

Если вам нужно получить ровно восемь чисел в конце имени файла (и после подчеркивания),Вы можете использовать этот шаблон:

_(\d{8})\.pdf

И затем эта строка VB.NET:

Regex.Match(fileName, "_(\d{8})\.pdf").Groups(1).Value

Важно отметить, что Regex по умолчанию чувствителен к регистру, поэтому для предотвращения попадания вВ ситуациях, когда «pdf» соответствует, а «PDF» - нет, шаблон можно настроить следующим образом:

(?i)_(\d{8})\.pdf

Вы можете использовать его непосредственно в любом окне выражения:

enter image description here

PS: Вы также должны убедиться, что ссылка System.Text.RegularExpressions находится в импорте:

enter image description here

1 голос
/ 06 июня 2019

Это пример кода того, что я сказал в своем комментарии.


    Sub Main()


        Dim strFileName As String = ""
        Dim di As New DirectoryInfo("C:\Users\Maniac\Desktop\test")
        Dim aryFi As FileInfo() = di.GetFiles("*.pdf")
        Dim fi As FileInfo

        For Each fi In aryFi

            Dim arrname() As String
            arrname = Split(Path.GetFileNameWithoutExtension(fi.Name), "_")
            strFileName = arrname(arrname.Count - 1)
            Console.WriteLine(strFileName)
        Next


    End Sub
0 голосов
/ 12 июня 2019

Вы можете достичь этого и таким образом:)

Path.GetFileNameWithoutExtension (Str1) .split ( "_" с) .Last

Path.GetFileNameWithoutExtension

  • Возвращает имя файла указанной строки пути без расширения.

поэтому с вашей строкой она вернется к вам - 10001662-1_20060301_29_1_20190301

затем Разделить над строкой, т.е. 10001662-1_20060301_29_1_20190301 на основе _ и будет возвращать массив строк.

Последний

  • Он вернет вам последний элемент массива, возвращенный Split. .

Привет .. !! АКШ

...