gpt4 book ai didi

javascript - 使用 JavaScript 和通配符的 UltraEdit 脚本

转载 作者:行者123 更新时间:2023-11-28 02:03:25 26 4
gpt4 key购买 nike

我有一个结合使用 JavaScript 和 UltraEdit 脚本的程序。该程序有一个要在文件/选项卡中搜索的字符串数组。如果找到,它将相应的行移动到新文件/选项卡。当使用精确匹配时,效果很好。

但是,我的源值并不完全匹配。文件中的值是 ######-##,其中破折号后面的值有所不同。我的值达到了破折号。我尝试将通配符构建到数组值中,并尝试将其连接到 .find 函数,但没有成功。任何想法将不胜感激。

这是我在 UltraEdit 中作为脚本执行的代码。为了演示目的,我从数组中包含的 50 个值中 chop 了该数组。

// Start at the beginning of the file
UltraEdit.activeDocument.top();

// Search string variable used for copying of lines
//DD011881 - Building an array of values
var delString = new Array()
delString[0] = "'99999999'";
delString[1] = "'169-*'";
delString[2] = "'5482-*'";
delString[3] = "'5998-*'";
delString[4] = "'36226-*'";
delString[5] = "'215021-*'";


// Array loop value
var x = 0;
var arrayLen = delString.length

// Start with nothing on the clipboard
UltraEdit.clearClipboard();

for (x=0; x<arrayLen; x++)
{

// Establish our search string for the loop condition
var bFound = false;

while (UltraEdit.activeDocument.findReplace.find(delString[x])){

UltraEdit.activeDocument.selectLine();
UltraEdit.activeDocument.copyAppend("^c" + "\n");
bFound = true;
}

UltraEdit.activeDocument.top();
if (bFound) {
UltraEdit.document[6].paste();
UltraEdit.activeDocument.top();
UltraEdit.clearClipboard();
}
} // For Loop

最佳答案

在您的 UltraEdit 脚本中,您想要在 while 循环中运行 UltraEdit 正则表达式查找,但您从未设置过正则表达式引擎或任何查找参数。因此,脚本正在使用查找的内部默认值执行查找(不区分大小写,向下非正则表达式搜索,不将整个单词与所选的 Perl 正则表达式引擎匹配)。

在 UltraEdit 脚本中的命令 UltraEdit.clearClipboard(); 下面插入以下行:

UltraEdit.ueReOn();
UltraEdit.activeDocument.findReplace.mode = 0;
UltraEdit.activeDocument.findReplace.matchCase = true;
UltraEdit.activeDocument.findReplace.matchWord = false;
UltraEdit.activeDocument.findReplace.regExp = true;
UltraEdit.activeDocument.findReplace.searchDown = true;

if (typeof(UltraEdit.activeDocument.findReplace.searchInColumn) == "boolean") {

UltraEdit.activeDocument.findReplace.searchInColumn = false;
}

现在,为脚本选择了 UltraEdit 正则表达式,并设置了查找参数以运行区分大小写(更快)的正则表达式搜索。

请从命令 UltraEdit.activeDocument.copyAppend() 中删除 "^c"+ "\n",因为此命令不带任何参数。使用上面的命令,已经选择了包括行终止符在内的整行,并且该选择被附加到剪贴板,而不是您放入命令 copyAppend() 括号中的字符串。

关于javascript - 使用 JavaScript 和通配符的 UltraEdit 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18117633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com