【问题标题】:How to cut a string from the end in UIPATH如何在 UIPATH 中从末尾剪切一个字符串
【发布时间】:2019-06-06 19:55:26
【问题描述】:

我有这个字符串:“C:\Procesos\rrhh\CorteDocumentos\Cortados\10001662-1_20060301_29_1_20190301.pdf”,我试图得到这个部分:“20190301”。问题是长度并不总是相同的。这将是: “9001662-1_20060301_4_1_20190301”。

我试过这个:item.ToString.Substring(66,8),但有时不起作用。

我能做什么?

【问题讨论】:

  • 使用 Path.GetFileNameWithoutExtension 方法获取不带扩展名的文件名,然后用 '_' 分割文件名并使用 count - 1 获取数组的最后一个索引

标签: substring uipath


【解决方案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

【讨论】:

    【解决方案2】:

    您可以使用简单的正则表达式来实现这一点,它具有包含模式验证的额外好处。

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

    _(\d{8})\.pdf
    

    然后是这条 VB.NET 行:

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

    值得一提的是,Regex 默认区分大小写,因此为了防止出现“pdf”匹配而“PDF”不匹配的情况,可以像这样调整模式:

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

    您可以直接在任何表达式窗口中使用它:

    PS:您还应该确保 System.Text.RegularExpressions 引用在 Imports 中:

    【讨论】:

      【解决方案3】:

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

      Path.GetFileNameWithoutExtension(Str1).Split("_"c).Last

      Path.GetFileNameWithoutExtension

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

      所以你的字符串会返回给你 - 10001662-1_20060301_29_1_20190301

      然后拆分上面的字符串,即10001662-1_20060301_29_1_20190301基于_,将返回一个字符串数组。

      最后

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

      问候..!! AKsh

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-05
        • 1970-01-01
        相关资源
        最近更新 更多