J'essaie de créer quelque chose qui recherchera la colonne A1 pour les chaînes de requête des URL (exemple:? Autre_), puis supprimez-les en utilisant des expressions régulières. J'ai compris quel type d'expression régulière à utiliser dans la section "Rechercher et remplacer" sur Google Feuilles, mais je ne sais pas comment l'écrire. P>
Expression régulière: S'il vous plaît laissez-moi savoir où je devrais commencer avec cela. p> \? (. *) code> p>
3 Réponses :
Je ne sais pas comment implémenter dans une feuille de Google. Mais vous pouvez utiliser la regex suivante pour obtenir la chaîne de requête entière:
regex: Exemple dans JS: P> p> /\?.*$/ code> p>
const regex= /\?.*$/
console.log("example.com/home?utf_medium=browser".replace(regex, "")) // Result: example.com/home
console.log("example.com/post?utf_medium=browser&key=value".replace(regex, "")) // Result: example.com/post
Vous n'avez pas besoin d'expressions régulières pour éliminer les chaînes de requête.
function removeQueryStrings() { const ss=SpreadsheetApp.getActive(); const sh=ss.getActiveSheet(); const rg=sh.getRange(1,1,sh.getLastRow(),1); var vs=rg.getValues(); vs.forEach(function(r,i){ let idx=r[0].indexOf('?'); if(idx!=-1) { sh.getRange(i+1,1).setValue(r[0].slice(0,idx)); } }); }
Vous allez ici:
p> function myFunction() {
//Use Spreadsheet app to select this current spreadsheet, then this current sheet
let sheetToScan = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
//Edit this to be the range you want
const rangeToScan = 'A1:A5'
//load the range
let range = sheetToScan.getRange(rangeToScan)
//This expression copys the range's values to a 2D array.
let cellValuesArray = range.getValues();
//Edit this to be the regex you want
const myRegex = /\?.*$/;
console.log(cellValuesArray);
// 2 layer for loop for 2 dimensional range selection
for (const row in cellValuesArray) {
for (const cell in cellValuesArray[row]) {
// Convert cell value from an Object to a String
let stringToSearch = String(cellValuesArray[row][cell])
//IF matches regex
if (myRegex.test(stringToSearch)) {
console.log(cellValuesArray[row][cell]);
//replace regex with nothing (delete matched text)
let replacedWithString = stringToSearch.replace(myRegex, '');
// Set cell value in array to updated string
cellValuesArray[row][cell] = replacedWithString
console.log('Found a Match!!: "', stringToSearch, '" replaced with: "', replacedWithString, '"');
}
}
}
console.log(cellValuesArray);
//Set new values with replacements in Spreadsheet
range.setValues(cellValuesArray);
}
Veuillez fournir un coup d'écran ou partager votre feuille. Fournir le résultat de la chaîne et du désir
@Rocky dans la colonne A1 de ma feuille, nous avons plusieurs résultats qui incluons des chaînes de requête, telles que celles suivantes: /? Login = 1 /? Login = `Nous souhaitons configurer un script dans Google App script pour exécuter et supprimer ces chaînes de requête. .