自定义函数JSAMATCHALL,单元格中使用正则搜索,包括捕获组

function Workbook_Open(){

//有3种方法运行此宏:

//1.文件-选项-信任中心-勾选“启用宏后自动添加为受信任的文档”。打开此工作簿,启用宏。今后打开此工作簿此宏会自动运行。

//2.Alt+F8,运行一次Workbook_Open宏。

//3.加载宏

//(1)存为.xlam文件;

//(2)开发工具-加载项-浏览-找到文件-打开-选中-确定。删除加载项方法为,改名称或位置-WPS调用失败出现删除提示-确定。

{ //功能区。

}

{ //“宏选项”对话框、“插入函数”对话框。

Application.MacroOptions("JSAMATCHALL","检索字符串与正则表达式进行匹配的所有结果(包括捕获组)。",undefined,undefined,undefined,undefined,14,undefined,undefined,undefined,['要在其中搜索的字符串。\n可以是数字、字符串、数组、单元格区域。数组元素之间、单元格之间自动添加英文,号。','正则表达式。\n可以是正则表达式字符串、单个单元格。必须设置全局 g 标志。"号应写为""。'])

}

}

function JSAMATCHALL(str,regstr){

//str:要在其中搜索的字符串。

//可以是数字、字符串、数组、单元格区域。数组元素之间、单元格之间自动添加英文,号。

//regstr:正则表达式。

//可以是正则表达式字符串、单个单元格。必须设置全局 g 标志。"号应写为""。

var str = str.valueOf().toString();

var regstr = regstr.valueOf().toString();

var pattern = regstr.slice(1,regstr.lastIndexOf("/"));

var attributes = regstr.slice(regstr.lastIndexOf("/")+1);

var reg = new RegExp(pattern,attributes);

if(!reg.global){

MsgBox("必须设置全局 g 标志");

}else{

return [...str.matchAll(reg)];

}

}

云南省
浏览 1226
1
5
分享
5 +1
1 +1
全部评论