我正在尝试进行项目范围的搜索并替换
从:
drivers[i].findElement(By.id("elementID")).click();
到:
findAndClick(driver[i], "elementID", true)
问题是elementID可以是任何东西所以我正在尝试使用通配符搜索并替换通配符中的内容?
答案 0 :(得分:19)
您需要在此使用.+?
代替*
,因为它使用正则表达式。
在正则表达式中,点.
表示“任意字符”,加号+
表示“一次或多次”,问号?
表示“尝试匹配”尽可能少的时间“ - 这是有用的,所以它不会保持匹配超过你的引号
要清楚,你必须制作一个有效的正则表达式,这意味着你需要转义括号,圆点等。
这是完整的解决方案
查找:drivers\[i\]\.findElement\(By\.id\("(.+?)"\)\)\.click\(\);
替换为: findAndClick(driver[i], "$1", true)
请注意,在“通配符”(.+)
周围添加了未转义括号,这会在正则表达式中创建一个捕获组,这是替换中的$1
。这是第一个捕获组。