regex 如何删除所有短代码(几乎相似)从一列在谷歌表

dpiehjr4  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(87)

我有一个Google表格数组,列有63行(列C),代码很短,

[audio mp3:="https/...." ][/audio]

每一行都有这个标签,但有不同的链接。但总是带着这个
[audio mp3:="https/...." ][/audio]

C1: [mp3 audio:="https/upload/content/file1.mp3"][/audio]  
C2: [mp3 audio:="https/upload/content/file2.mp3"][/audio]

如何查找并删除C`列中所有63行中以“[mp3 audio”开头并以“[/audio]”结尾的所有术语?

voase2hg

voase2hg1#

使用REGEX的示例脚本

function deleteTerms() {
  // REGEX pattern
  let pattern = /mp3 audio\:="http.+"]\[\/audio]/;

  // Initialize Spreadsheet, Sheet, Range, Values
  let ss = SpreadsheetApp.getActive();
  let sh = ss.getSheetByName("Sheet1"); // Replace with sheet name.
  let range = sh.getDataRange();
  let values = range.getValues(); // Returns 2D array

  // Temporary store of values to delete
  let indicesToDelete = [];

  // Go through 2D array to find matches to pattern
  // and add to store of values to delete
  values.forEach((row, rowIndex) => {
    row.forEach((cell, cellIndex) => {
      if (pattern.exec(cell) != null) {
        indicesToDelete.push([rowIndex, cellIndex]);
      }
    });
  });

  // Go through store of values, and replace them with ""
  indicesToDelete.forEach((item) => {
    values[item[0]][item[1]] = "";
  });

  // Write values to sheet
  range = range.offset(0,0, values.length, values[0].length)
  range.setValues(values)
}
  • 在运行工作表之前,请确保工作表名称正确。
  • 找到结果后,您可以调整此脚本以执行您喜欢的操作。无论是删除列、将值移动到其他地方,还是像我所做的那样仅仅删除值。
  • 该脚本将查找该值是否在列C或工作表中的任何地方。

参考资料

相关问题