gpt4 book ai didi

javascript - 在 Google Apps 脚本中搜索数字的正则表达式模式 (Javascript 1.6)

转载 作者:行者123 更新时间:2023-12-01 02:03:54 27 4
gpt4 key购买 nike

我有一个从 0 到 10 的数字数组 ["0", "1", ..., "10"],我正在使用 text.search(array[i]) 其中文本包含“10”(这是 10)。该代码总是找到“1”,但找不到“10”。我可以创建一个 RegExp 来查找 10 吗?

非常感谢。

function analizar(text) {
var querer = ["baja", "muestra", "ver", "imprim"];
var tema = ["contenido", "asunto", "materia", "texto", "leccion"];
var temas =[" 0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];

var keys = [querer, tema, temas];
var resultado = 0;

var str = []
for (var a = 0; a < keys.length; a++){
for (var b = 0; b < keys[a].length; b++){

var actual = keys[a];
var buscar = actual[b];

问题就在这里。我不知道如何精确搜索数字 10

      if (a == "2") {var buscar = new RegExp(actual[b]);}
var val = text.search (buscar)
if (val > -1) {
resultado++;
if(a == "2") {str.push(keys[a][b])}
break;
}
}
}

Logger.log(str[0]);

if (resultado == 3) {return str[0]}
if (resultado != 3) {return "";}
}

最佳答案

第一个问题是您从低到高搜索数字。这意味着我们找到 1 并返回,而我们应该贪婪地匹配 1 之后的 0 以匹配完整的 10 .

所以只需重新排列你的数组:

var temas =[ "10", "0", "1", "2", "3", "4", "5", "6", "7", "8", “9”];

应该给出正确的输出。

但是,您根本没有使用正则表达式的真正威力。单个正则表达式可以描述整个数组:

/10?|[2-9]| 0/

正则表达式分割:

10? :匹配仅出现一次的字符 1,后跟 0 1 次或 0 次。 (这捕获了 1 情况和 10 情况)
|:这是一个OR运算。将表达式匹配到左侧或右侧。
[2-9] :匹配 29 范围内的单个字符
|:另一个OR
0 :匹配字符 一次,后跟一个 0 字符。

关于javascript - 在 Google Apps 脚本中搜索数字的正则表达式模式 (Javascript 1.6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50274414/

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