如何使用VBScript删除.txt文件中重复的字符串模式?

时间:2018-02-06 02:55:08

标签: replace vbscript

使用VBScript,我如何界定从' MCS4'开始的文本?并最终在'商标'用白色空间代替它?

输入:

alpha
beta 
gamma
MCS4 Copyright (c) 2018
Reg. Trademark
delta
epsilon
theta
MCS4 Copyright (c) 2018
Reg. Trademark
phi
chi 
omega

期望的输出:

alpha
beta 
gamma
delta
epsilon
theta
phi
chi 

2 个答案:

答案 0 :(得分:1)

如果您要删除的字符串始终相同,则可以将Replace函数用作Troy Turley suggested。如果“MCS4”和“商标”之间的文本是可变的,则需要正则表达式。请注意,无论哪种方式,您都需要在单个字符串中使用整个文本才能使替换工作。

使用Replace功能:

Set fso = CreateObject("Scripting.FileSystemObject")
txt1 = fso.OpenTextFile("C:\path\to\your.txt").ReadAll

s = "MCS4 Copyright (c) 2018" & vbNewLine & "Reg. Trademark"

txt2 = Replace(txt1, s, "")

使用正则表达式替换:

Set fso = CreateObject("Scripting.FileSystemObject")
txt1 = fso.OpenTextFile("C:\path\to\your.txt").ReadAll

Set re = New RegExp
re.Pattern = "MCS4[\s\S]*?Trademark"
re.Global  = True

txt2 = re.Replace(txt1, "")

模式[\s\S]*?匹配零个或多个字符(空格(\s)或非空格(\S),以覆盖所有文本,包括换行符。修饰符*?确保您获得最短的匹配序列,因此您将替换所有“MCS4 ...商标”子字符串,而不是第一个“MCS4”和最后一个“商标”之间的整个文本。

答案 1 :(得分:0)

https://www.w3schools.com/asp/func_replace.asp

替换(字符串,查找,replacewith [,开始[,计数[,比较]]])

在您的情况下,假设字符串的名称是strCopyright:

    Replace(strCopyright,"MCS4 Copyright (c) 2018 Reg. Trademark",""))