如何从UIPATH的末尾剪切字符串

时间:2019-06-06 19:55:26

标签: substring uipath

我有以下字符串:“ 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 个答案:

答案 0 :(得分:1)

这是我在评论中说的代码示例。


    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

答案 1 :(得分:1)

您可以使用简单的正则表达式来实现这一点,它具有包括模式验证在内的附加好处。

如果您需要从文件名的末尾(在下划线之后)精确获取八个数字,则可以使用以下模式:

_(\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

答案 2 :(得分:0)

您也可以通过这种方式实现它:)

  

Path.GetFileNameWithoutExtension(Str1).Split(“ _” c).Last

Path.GetFileNameWithoutExtension

  • 返回不带扩展名的指定路径字符串的文件名。

因此使用您的字符串,它将返回给您- 10001662-1_20060301_29_1_20190301

然后在字符串上方拆分,即基于 _ 10001662-1_20060301_29_1_20190301 ,并将返回字符串数组。

最后

  • 它将返回由 Split。返回的数组的最后一个元素。

关于.. !! AKsh