从文本文件中的字符串中删除数字

1 vb.net

我想删除"H"和它后面的数字.我只想要"B".我知道如何删除"H",但我不确定如何删除H"之后的数字.H"之后的数字可能从一位数到三位数不等.

H1 B
H2 B
H10 B
H11 B.

我正在尝试这个.如果"H"之后的数字是单个数字,则它有效.如果"H"之后的数字超过一位数,它将无法工作.

If line.Contains("H") Then
    line = line.Remove(0, 2)
End If

' ...

Dim AllFiles As String() = IO.Directory.GetFiles("C:\test")
For Each File As String In AllFiles
    Dim newfile As New List(Of String)
    For Each line As String In System.IO.File.ReadAllLines(File)
        If line.Contains("H") Then
            line = line.Remove(0, 2)
        End If
        newfile.Add(line)
Run Code Online (Sandbox Code Playgroud)

dum*_*mmy 6

在此输入图像描述

正则表达式可以解决这个问题:

Imports System.Text.RegularExpressions

Module Module1

    Sub Main()
        Dim input = IO.File.ReadAllText("input.txt")
        Dim output = Regex.Replace(input, "H\d+", "")
        IO.File.WriteAllText("output.txt", output)
    End Sub

End Module
Run Code Online (Sandbox Code Playgroud)

神奇的部分是"H\d +",它翻译成"字母H",后跟一个数字("\ d"),重复至少一次.

RegularExpressions很容易习惯.但幸运的是,网上有大量的文档和示例.只是谷歌吧 :)

编辑:史蒂文Doggart正确地指出:

  1. 如果您想删除数字后面的空格,请将表达式更改为"H\d +".

  2. 如果您只想在每行的开头匹配/替换它,请将其更改为"^ H\d +".