Google apps script 在GoogleDocs电子表格中,如何索引到regextract返回的数组中
我试图索引到regextract的结果中,以提取作为路径的文本字符串的特定部分。如何访问特定的匹配项 A1 A2 ------------------------------------ ----------- =REGEXEXTRACT($B$2,"/[A-Za-z_-]+/") /a/b/c/d.txt A1 A2 ------------------------------------ ----------- =REGEXEXTRACT($B$2,“/[A-Za-z+/”)/A/B/c/d.txtGoogle apps script 在GoogleDocs电子表格中,如何索引到regextract返回的数组中,google-apps-script,google-docs,google-sheets,Google Apps Script,Google Docs,Google Sheets,我试图索引到regextract的结果中,以提取作为路径的文本字符串的特定部分。如何访问特定的匹配项 A1 A2 ------------------------------------ ----------- =REGEXEXTRACT($B$2,"/[A-Za-z_-]+/") /a/b/c/d.txt A1 A2 -----------------------------
上面的公式将第一个数组值“/a/”放入单元格A1,如何访问数组中的第四个或最后一个值?如果您坚持使用
REGEXTRACT()
来分解路径,您可能会发现以下资源很有帮助:
- (其结论是“不要使用javascript”…因此我从一个示例中提升代码开始!)
- 。。。还有更多
pathExtract()
将返回给定路径字符串的指定段
/**
* Split path into parts, return in array. If path started
* at 'root', first part will be "/". This function may be used
* as a custom function in Google Spreadsheets.
*
* @var {string} path The search path, e.g. "/a/b/c/d.txt"
* @return {array} Result of splitting path at "/".
*/
function pathSplit( path ) {
var arr = path.split('/');
if (path[0] === "/") {
arr[0] = "/";
}
return ( arr );
}
/*
* Get a portion of a path string. To match INDEX() function,
* the parameter index is 1-based. Requesting index 0 will
* result in the last element from the string. This function
* may be used as a custom function in Google Spreadsheets.
*
* @var {string} path The search path, e.g. "/a/b/c/d.txt".
* @var {number} index 1-n, the element to extract. 0 for last.
* @return {string} Element [index] from path, or *ERROR*.
*/
function pathExtract( path, index ) {
var result = "*ERROR*";
var pathArray = pathSplit( path );
if (index >= 1 && index <= pathArray.length) {
result = pathArray[index-1];
}
if (index === 0) {
result = pathArray[pathArray.length-1];
}
return ( result );
}
/**
*将路径拆分为多个部分,以数组形式返回。如果路径已启动
*在“根”处,第一部分为“/”。可以使用此功能
*作为谷歌电子表格中的自定义功能。
*
*@var{string}path搜索路径,例如“/a/b/c/d.txt”
*@return{array}在“/”处拆分路径的结果。
*/
函数路径拆分(路径){
var arr=path.split('/');
如果(路径[0]=“/”){
arr[0]=“/”;
}
返回(arr);
}
/*
*获取路径字符串的一部分。要匹配INDEX()函数,
*参数索引是基于1的。请求索引0将被删除
*结果是字符串中的最后一个元素。此函数
*可以在Google电子表格中用作自定义函数。
*
*@var{string}path搜索路径,例如“/a/b/c/d.txt”。
*@var{number}索引1-n,要提取的元素。最后是0。
*@return{string}元素[index]来自路径,或*ERROR*。
*/
函数pathExtract(路径、索引){
var result=“*错误*”;
var pathArray=pathSplit(路径);
如果(索引>=1&&index