删除文本文件中多余的 space

Remove extra space in text file

我正在创建一个文本文件并将一些预先生成的 Excel 数据复制到其中。它工作正常。但是输出如下:

MGSSP:IMSI= 40211xxxx   ;
MGSSP:IMSI= 40211xxxx   ;
MGSSP:IMSI= 40211xxxx   ;
...

我想去掉 = 之后和 ; 之前的空格。那就是期望输出应该是这样的:

MGSSP:IMSI=40211xxxx;
MGSSP:IMSI=40211xxxx;
MGSSP:IMSI=40211xxxx;
...

我正在使用以下代码:

If My.Computer.FileSystem.FileExists("C:\Temp\mgssp_script.txt") Then
        Dim proc As Process = Process.Start("notepad.exe", "C:\Temp\mgssp_script.txt")
        System.Threading.Thread.Sleep(250)
        SendKeys.Send("^v")
    Else
        Dim file As System.IO.FileStream
        file = System.IO.File.Create("C:\Temp\mgssp_script.txt")
        file.Close()
        Dim proc As Process = Process.Start("notepad.exe", "C:\Temp\mgssp_script.txt")
        System.Threading.Thread.Sleep(250)
        SendKeys.Send("^V")
        file.Close()
    End If

您可以使用 System.Windows.Forms 命名空间中的 Clipboard class 将剪贴板数据获取到您的程序中。

如果这不是 winforms 应用程序,您将必须添加对 System.Windows.Forms 的引用并在您的代码中包含一个 Imports 语句:Imports System.Windows.Forms.
此外,我的代码在 System.Text.RegularExpressions 中使用 RegEx class,因此您也必须导入它。

此代码会将剪贴板数据获取到您的程序中,替换空格,并将更改后的字符串设置回剪贴板。

Dim ClipBoardlData As String
If Clipboard.ContainsText() Then
    ClipBoardlData = Clipboard.GetText()
    Dim re As Regex =  New Regex("=\s+") ' for the = and spaces after it
    ClipBoardlData = re.Replace(ClipBoardlData, "=")
    re = New Regex("\s+;") ' for the spaces before the ;
    ClipBoardlData = re.Replace(ClipBoardlData, ";") 
    Clipboard.SetText(ClipBoardlData)
End If

之后您可以继续使用打开记事本应用程序所必须的代码。

我对 Zohar 的代码稍作改动就成功了。这是代码:

Dim ClipBoardlData As String
    If Clipboard.ContainsText() Then
        ClipBoardlData = Clipboard.GetText()
        ClipBoardlData = ClipBoardlData.Replace("=  4", "=4") ' Fixed that line.
        Dim re As Regex = New Regex("\s+;")
        ClipBoardlData = re.Replace(ClipBoardlData, ";")
        Clipboard.SetText(ClipBoardlData)
    End If