Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式匹配方括号内的方括号Google电子表格_Javascript_Regex_Google Sheets - Fatal编程技术网

Javascript 正则表达式匹配方括号内的方括号Google电子表格

Javascript 正则表达式匹配方括号内的方括号Google电子表格,javascript,regex,google-sheets,Javascript,Regex,Google Sheets,我目前正在使用谷歌脚本编写脚本。我试图通过写下以下内容来选择除方括号内的字符以外的任何字符: var cleantext=text.replace(/[^\s\w”!、\??!:]/g'); 我还想保留“[”和“]”,我已经按照这里的一些教程尝试了“\\]”和“\\[” var cleantext=text.replace(/[^\s\w”!、、.\??!:“\\]”“\\[”]/g'); 或者尝试\\]和\\[ var cleantext=text.replace(/[^\s\w“!,,,,,

我目前正在使用谷歌脚本编写脚本。我试图通过写下以下内容来选择除方括号内的字符以外的任何字符:

var cleantext=text.replace(/[^\s\w”!、\??!:]/g');

我还想保留“[”和“]”,我已经按照这里的一些教程尝试了“\\]”和“\\[”

var cleantext=text.replace(/[^\s\w”!、、.\??!:“\\]”“\\[”]/g');

或者尝试\\]和\\[

var cleantext=text.replace(/[^\s\w“!,,,,,,,?!:\\]\[]\[]/g',);

请随意更改我的问题的措辞,因为我发现我可能不知道我实际上想问的是什么问题,因为Stackoverflow已经有许多类似的问题,标题类似

我希望编辑一整列单元格,它们是日文、中文和英文字符的组合

例如:
"こんにちは、私は吉姆です 要将
]
[
包含到JavaScript正则表达式字符类中,您需要转义
]
,而不必转义
[

/[abc[\]xyz]/
     ^^^
如果只需要支持ASCII字母和日语,则需要添加:

以下是一个示例解决方案:

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var cell = sheet.getRange('F13').getValue();
  Logger.log(cell);
  var reg_ascii_letter = "A-Za-z";
  var reg_japanese_letter = "\\u3000-\\u303F\\u3040-\\u309F\\u30A0-\\u30FF\\uFF00-\\uFFEF\\u4E00-\\u9FAF\\u2605-\\u2606\\u2190-\\u2195\\u203B";
  var rx = new RegExp("[^\\s\"!,、。.??!:[\\][" + reg_ascii_letter + reg_japanese_letter + "]+", "g");
  Logger.log(rx);
  var nval = cell.replace(rx, '').replace(/(\s){2,}/g, '$1');
  sheet.getRange('F15').setValue(nval);
}


类似地,您可以为任何字母构建Unicode正则表达式。

您可以在问题中包含输入和预期结果吗?完成,添加输入和预期结果。不熟悉Google脚本,但不会完全按照您的要求执行。
\[\]
即,
/[^\s\w”!、、、、.??!:\[\]]/
这似乎不起作用,即删除方括号。当我用该代码单击第一个方括号时,它会突出显示第二个方括号,好像它们是成对的。
\[([^]+)\]
这将获得方括号中的所有内容非常感谢您的解决方案。这非常有效。
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var cell = sheet.getRange('F13').getValue();
  Logger.log(cell);
  var reg_ascii_letter = "A-Za-z";
  var reg_japanese_letter = "\\u3000-\\u303F\\u3040-\\u309F\\u30A0-\\u30FF\\uFF00-\\uFFEF\\u4E00-\\u9FAF\\u2605-\\u2606\\u2190-\\u2195\\u203B";
  var rx = new RegExp("[^\\s\"!,、。.??!:[\\][" + reg_ascii_letter + reg_japanese_letter + "]+", "g");
  Logger.log(rx);
  var nval = cell.replace(rx, '').replace(/(\s){2,}/g, '$1');
  sheet.getRange('F15').setValue(nval);
}