1

我知道我可以使用带有通配符的通配符;Google表格脚本通配符

=COUNTIF(A:A ; "*text*") 

我想运行我的代码,如果A1包含“文本”。

A1 =“test text”

任何人都可以帮助我吗?

回答

0

我的解决办法:

if(test.indexOf("2,")>-1) 
{ 
    my code goes here 
    } 
0
=IF(COUNTIF(A1, "*text*"), "your code here", "Code not run: A1 doesn't contain 'text'") 

这是你在想什么 - 公式代码?或者你想用Google Apps Script

(有可能是一个比COUNTIF()这个更直观地命名的功能,但它的伎俩。)

+0

我想使用谷歌Apps脚本。 – NoTolerance

3

对于谷歌Apps脚本,您可以使用正则表达式。

/.*text.*/

注意通配符使用稍有不同的正则表达式:你需要你的星号*之前,包括点.向前环绕的任何声明,如果你的应用程序脚本硬编码斜杠被解释为一个正则表达式:
COUNTIF()*text*
正则表达式:/.*text.*/

因此,一个快速脚本会看升IKE在此:

function matchText(text){ 
    try { 
     var pattern = /.*text.*/; 
     var isMatch = text.match(pattern)[0]; 
     return isMatch 
    } catch (e) { 
    return e.toString(); 
    } 
}; 

广义自定义函数:

function matchText(text,pattern){ 
    try { 
     var isMatch = text.match(pattern)[0]; 
     return isMatch 
    } catch (e) { 
    return e.toString(); 
    } 
}; 

您仍然可以做到这一点,使用REGEXEXTRACT或REGEXMATCH,这始终是我最喜欢的本地公式。请记住在星号前使用正确的正则表达式通配符表示法:这些点:.*。或者只是使用text本身,它会自动将找到它的任何实例:

enter image description here

+0

(术语nitpick:“如果你在应用程序脚本中对它进行硬编码,将正斜杠包围的任何***语句***解释为正则表达式:'/ * text * /'”↦我认为你的意思是***表达式***。(表达式构成声明的一部分。)) –