使用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
答案 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",""))