web-dev-qa-db-fra.com

VSCode Rechercher et remplacer Regex

J'essaie de faire une recherche et de remplacer l'ensemble du projet

de:

drivers[i].findElement(By.id("elementID")).click();

à:

findAndClick(driver[i], "elementID", true)

Le problème est que l'élément ID peut être n'importe quoi, donc j'essaie de rechercher et de remplacer le caractère générique par ce qui est dans le caractère générique?

enter image description here

11
Batman

Vous devrez utiliser .+? Au lieu de * Ici car cela utilise des expressions régulières.

Dans les expressions régulières, un point . Signifie "n'importe quel caractère", le plus + Signifie "une ou plusieurs fois" et le point d'interrogation ? Après cela signifie "essayez de faire correspondre ceci aussi peu de fois que possible "- ce qui est utile pour qu'il ne continue pas à correspondre au-delà de vos guillemets

éditer

Pour être clair cependant, vous devez faire une expression rationnelle valide, ce qui signifie que vous devrez échapper à vos parenthèses, points, etc.

Voici la solution complète

Rechercher: drivers\[i\]\.findElement\(By\.id\("(.+?)"\)\)\.click\(\);

remplacer par:findAndClick(driver[i], "$1", true)

Notez les parenthèses ajoutées non échappées autour du "caractère générique" (.+) Cela crée un groupe de capture dans une expression régulière, ce qui se traduit par $1 Dans le remplacement puisqu'il s'agit du 1er groupe de capture.

24
CBarr