Vb.net 基于具有某些相同字符的多个分隔符的name.split

Vb.net 基于具有某些相同字符的多个分隔符的name.split,vb.net,Vb.net,我有以下格式的文件进入SFTP:12345678_STLREPT。有时,它们有两个下划线而不是一个。ie:12345678报告。这使我的排序程序通过一个循环。所以我首先尝试执行下面代码的顶行,它抛出了一个I/O异常。如果我添加“_uu”作为分隔符,第二行可以工作,但我的问题是Name.Split如何工作。我无法通过谷歌搜索确定它是否在字符串中找到的第一个分隔符处停止 基本上,如果它遍历分隔符列表,理想情况下它将匹配其中一个,执行拆分,然后在执行其余操作之前停止。 例子: 假设我有一个文件,名为1

我有以下格式的文件进入SFTP:12345678_STLREPT。有时,它们有两个下划线而不是一个。ie:12345678报告。这使我的排序程序通过一个循环。所以我首先尝试执行下面代码的顶行,它抛出了一个I/O异常。如果我添加“_uu”作为分隔符,第二行可以工作,但我的问题是Name.Split如何工作。我无法通过谷歌搜索确定它是否在字符串中找到的第一个分隔符处停止

基本上,如果它遍历分隔符列表,理想情况下它将匹配其中一个,执行拆分,然后在执行其余操作之前停止。 例子: 假设我有一个文件,名为1234__ASDF.PDF 下面的代码是否会对第一个分隔符(u_)拆分一次,然后对第二个分隔符(u)拆分两次?我觉得会的

    fileInfo.Name.Split(New Char() {"__", "_", "-"})
有人知道这个问题有更好的解决办法吗

谢谢,

代码,再一次。顶部抛出错误,底部是现有代码:

    fileInfo = fileInfo.Name.Replace("__", "_")

    Dim a() As String = fileInfo.Name.Split(New Char() {"_", "-"})

首先,要了解您的数据类型以及您在其中填充的内容。
Char
包含一个字符。试图把两个连字符塞进一个字符——真丢脸

接下来,请注意您的工具。该函数接受一个控制如何处理空元素的函数。它还包括用于接受请求的重载


首先,要了解您的数据类型以及您在其中填充的内容。
Char
包含一个字符。试图把两个连字符塞进一个字符——真丢脸

接下来,请注意您的工具。该函数接受一个控制如何处理空元素的函数。它还包括用于接受请求的重载


你可以用single分割,只得到第一个和最后一个元素,而不是第一个和第二个元素。像这样?在分手之后?string1=a(0)。Replace(“,”)string2=a(1)。Replace(“,”)你可以用single分割,只得到第一个和最后一个元素,而不是第一个和第二个元素。像这样吗?在分手之后?string1=a(0)。替换(“,”)string2=a(1)。替换(““,”)感谢您指出字符是单个字符。真可耻!拆分选项似乎工作得很好。非常感谢你。我的思路是,它将以“12345”作为第一个字符串,以“_STLRPT”作为第二个字符串。但是它保存了第一个字符串,然后第二个字符串为空。感谢您指出Char是单个Char。真可耻!拆分选项似乎工作得很好。非常感谢你。我的思路是,它将以“12345”作为第一个字符串,以“_STLRPT”作为第二个字符串。但是它保存第一个字符串,然后第二个字符串为空。
Dim fileParts As String() = fileInfo.Name.Split(
    New Char() {"_", "-"}, 
    StringSplitOptions.RemoveEmptyEntries)