Javascript googlesheet脚本中的Regex

Javascript googlesheet脚本中的Regex,javascript,regex,google-apps-script,google-sheets,Javascript,Regex,Google Apps Script,Google Sheets,我有两个正则表达式,它们在regex101上工作得很好,但是在工作表脚本上,一个(REGEX_RANGO)在调用.test时返回false,另一个(REGEX_invidual)根本不工作 (注意:我使用工作表上的一个单元格来调试这种情况,我不知道它是否更好,如果有人知道,请发布!) 我当前的正则表达式是: var REGEX_RANGO = /((?=(\d|\,))(\d{1,3}-\d{1,3})+(?=(\s|\,)))/gm; var REGEX_INDIVIDUAL = /((?&l

我有两个正则表达式,它们在regex101上工作得很好,但是在工作表脚本上,一个(REGEX_RANGO)在调用.test时返回false,另一个(REGEX_invidual)根本不工作

(注意:我使用工作表上的一个单元格来调试这种情况,我不知道它是否更好,如果有人知道,请发布!)

我当前的正则表达式是:

var REGEX_RANGO = /((?=(\d|\,))(\d{1,3}-\d{1,3})+(?=(\s|\,)))/gm;
var REGEX_INDIVIDUAL = /((?<=,)|(?:^(\d)))[^(,|\-)\n]+((?=,)|(?:\s))/gm;

注意GAS JS
RegExp
不支持像
(?你能在帖子中添加你想要的输出吗?当我在regex101中用
REGEX_RANGO
输入
000-005100200250-275300时,我用谷歌应用程序脚本得到你的输出对不起,我在regex101中编辑了它,效果很好。这是在谷歌工作表脚本上,根本不起作用,相同的输入返回false(nor不返回任何内容)使用string.test(REGEX_RANGO)或string.test(REGEX_-INDIVIDUAL)Thnx也是给编辑它的管理员的,看起来更好!你能在你的帖子中写下你用来匹配的确切函数吗。Thx是的,我提前发布了一个答案,应该会很有帮助。两种模式都很好!只感谢一个提示:我替换了我的REGEX_RANGO to/(?=(\d|,)(\d{1,3}-\d{1,3}+(?=($)($))/gm和.match的作用就像一个符咒,但真的非常感谢代码!@lucas_7_94
/(?=(\d|,)(\d{1,3}-\d{1,3})+(?=($)/gm
等于
/(\d{1,3}-\d{1,3})+(?=$,)/gm code>,因为
(?(?=$,\d},)/code>)后面的下一个字符必须是逗号,注意
应该删除。一些新的知识,需要改进,非常感谢您提供的信息!这个!注意GAS JS RegExp不支持lookbehinds!我不明白为什么我不能让我的工作。你知道我在哪里可以找到更多关于支持什么和不支持什么的信息吗?@StevenKuipers抱歉,GAS JS
RegExp
真是太棒了在跛足,似乎也有一些非捕获组的问题(虽然我不记得这个问题)。这是一些有趣的文章,但我不知道是否有更全面的内容。
var REGEX_INDIVIDUAL = /((?<=,)|(?:^(\d)))[^(,|\-)]+(?=($|,))/gm;
var j = numeros_ingresados.match( REGEX_INDIVIDUAL )
SpreadsheetApp.getActiveSheet( ).getRange("F1").setValue( " >> j : " + j )
function extractRangos() {
  var s = "000-005,100,200,250-275,300";
  var REGEX_RANGO = /(?:^|,)(\d+)-(\d+)(?![^,])/g;
  var REGEX_INDIVIDUAL = /(?:^|,)(\d+)(?![^,])/g;
  var m, res_rango = [], res_ind = [];
  while (m = REGEX_RANGO.exec(s)) {
    res_rango.push(m[1]);
    res_rango.push(m[2]);
  }
  while (m = REGEX_INDIVIDUAL.exec(s)) {
    res_ind.push(m[1]);
  }
  Logger.log(res_rango);
  Logger.log(res_ind);
}
(?:^|,)(\d+)(?![^,])
(?:^|,)(\d+)-(\d+)(?![^,])