VSCode搜索和替换正则表达式

Bat*_*man 12 regex visual-studio-code

我正在尝试进行项目范围的搜索和替换

从:

drivers[i].findElement(By.id("elementID")).click();
Run Code Online (Sandbox Code Playgroud)

至:

findAndClick(driver[i], "elementID", true)
Run Code Online (Sandbox Code Playgroud)

问题是elementID可以是任何东西所以我试图通配符搜索并替换为通配符中的内容?

在此输入图像描述

CBa*_*arr 26

你需要使用.+?而不是在*这里,因为它使用正则表达式.

在正则表达式中,点.表示"任何字符",加号+表示"一次或多次",而?此后的问号表示"尝试尽可能少地匹配" - 这很有用,因此不会保持匹配超过你的引号

编辑

要清楚,你必须制作一个有效的正则表达式,这意味着你需要逃避括号,点等.

这是完整的解决方案

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

用...来代替: findAndClick(driver[i], "$1", true)

请注意,在"通配符"周围添加了未转义的括号,(.+)这会在正则表达式中创建一个捕获组,这是$1替换中的转换,因为它是第一个捕获组.

  • 一个人不必在字符类之外逃避`]`. (2认同)