Google apps脚本:基于两个标准的regexmatch,包括传递的变量

Google apps脚本:基于两个标准的regexmatch,包括传递的变量,regex,google-apps-script,Regex,Google Apps Script,我正在使用SpreadsheetApp.newFilterCriteria().whenformulasuccessfuted()筛选工作表,但我没有正确设置regexmatch()函数。我需要根据两个条件筛选列A: 必须包含“ak1”或“ak2” 并且,必须包含myVar,这是一个将传递给脚本的变量 我知道如何编写regexmatch语句来获得条件1(regexmatch(A:A,“(?I)ak1 | ak2”)),但我一直在思考如何将其与条件2结合起来 我迄今为止最好的尝试是: var re

我正在使用
SpreadsheetApp.newFilterCriteria().whenformulasuccessfuted()
筛选工作表,但我没有正确设置regexmatch()函数。我需要根据两个条件筛选列A:

  • 必须包含“ak1”或“ak2”
  • 并且,必须包含
    myVar
    ,这是一个将传递给脚本的变量
  • 我知道如何编写
    regexmatch
    语句来获得条件1(
    regexmatch(A:A,“(?I)ak1 | ak2”)
    ),但我一直在思考如何将其与条件2结合起来

    我迄今为止最好的尝试是:

    var regex = new RegExp( myVar, 'g' );
    var crit = '=regexmatch(A:A, "^(?=.*ak1|ak2|)(?=.*myVar)")'
    
    编辑以添加示例:

    如果A列包含

    Chr_rq_ak1
    Chr_rq_ak2
    Chr_rq_ak6
    Chr_gv_ak1
    
    我希望以下内容可见,其余部分隐藏:

    Chr_rq_ak1
    Chr_rq_ak2
    

    如果您想使用替换项,您必须将它们分组
    (?=.*(:k1 | ak2))
    ,并在末尾省略

    如果后面只有一个字符,也可以使用


    您可以使用

    =AND(REGEXMATCH(A2,"(?i)ak(?:1|2)"),REGEXMATCH(A2,"myVar"))
    

    你能提供一个工作表名称的例子吗?我认为模式应该是
    ^(?=.*ak[12])(?=.*myVar)
    看,我无法得到其他答案。我能够通过一些修改使这个建议生效:
    var-crit='=AND(REGEXMATCH(A2,(?I)ak(?:1 | 2)”),REGEXMATCH(A2,“+myVar+”)
    where
    var-myVar=“rq”
    =AND(REGEXMATCH(A2,"(?i)ak(?:1|2)"),REGEXMATCH(A2,"myVar"))