首页 > 解决方案 > 从替换中跳过一个字符串,如果它有任何后缀或后缀

问题描述

我有一个大文件,我需要在其中替换一个字符串。文件从 Jenkins Build 生成并处理它,它使用 VBscript。

这是我的交易,我可以像这样简单地替换字符串,

Replace(str_Renamed, "Variables", "Variables_Base", 1, -1, 1) 

但在同一个文件中,“变量”也有后缀和后缀,我需要从替换中跳过这些特定的字符串。

VBscript 是否有任何对上述情况有用的功能。我也在寻找答案,如果我能找到任何东西。我会在这里发帖。

PS - 我也尝试过使用正则表达式,但它对我不起作用。如下

特殊字符“^”匹配字符串的开头。类似地,特殊字符“$”匹配字符串的结尾,而模式“^abc$”只匹配精确的字符串“abc”。

https://developer.rhino3d.com/guides/rhinoscript/vbscript-regexp-objects/#regular-expression-syntax

DIM oRE
Set oRE = New RegExp
oRE.Global = True
oRE.Pattern = "^Variables$" 
oRE.Replace("all Varablies value Replaced in FVariablesTemp File", "Variables_Base")

它应该只替换“变量”而不是任何其他具有子字符串为“变量”的字符串

现在,谁能更新我,如何在 VbScript 中使用正则表达式?

标签: vbscript

解决方案


正则表达式语法

^abc    string starts with "abc"
abc$    string ends with "abc"

因此,当您使用时,^Variables$您搜索的不是部分而是整个字符串。

改为使用

oRE.Pattern = "\bVariables\b" 

其中\b代表单词边界。


推荐阅读