VB.NET - 在第一个整数处停止读取的子字符串函数,可能吗?

VB.NET - Substring function that stops reading at first integer, possible?

我目前有一个包含 500 多行路径的文本文件。 (即 N:\Fork\Cli\Scripts\ABC01.VB)

其中一些文件名的长度不同(即 ABC01.VB、ABCDEF123.VB 等) 我怎样才能使用 substring 函数删除路径名、数字和文件类型,只留下字母。

比如处理N:\Fork\Cli\Scripts\ABC01.VB,返回ABC。 或 N:\Fork\Cli\Scripts\ZUBDK22039.VB 并返回 ZUBDK.

我只能使用此代码检索前 3 个字母

Dim comp As String = sLine.Substring(28, 3)
    sw.WriteLine(comp)

正如 Plutonix 指出的那样,将文件名与路径隔离开来的最佳方法是使用 System.IO.Path.GetFileNameWithoutExtension.

您可以像这样从文件名中提取字母(而不是数字或其他字符):

Dim myPath As String = "N:\Fork\Cli\Scripts\AB42Cde01.VB"

Dim filename As String = System.IO.Path.GetFileNameWithoutExtension(myPath)
Dim letters As String = filename.Where(Function(c) Char.IsLetter(c)).ToArray

以上代码将letters设置为ABCde。

该代码依赖于将字符串视为字符数组的事实。 Where 方法处理字符串(数组)中的所有字符并仅选择字母(使用 Char.IsLetter 方法)。所选字符将转换为分配给 letters 变量的数组(字符串)。

我从您最近的评论中看到,数字不能与字母混合(如我的示例)。但是,代码应该仍然适用于您的情况。