正则表达式匹配一个文字模式后跟零个或多个字符后跟另一个文字模式

Regex to match a literal pattern followed by zero or more characters followed by another literal pattern

我正在更新一个使用此样式调用方法的文件 Foo( a )。请注意参数 a 周围的额外空格。我想用更紧凑的调用样式替换此调用样式 -- Foo(a)。如何在我的文件中找到第一种样式的所有实例并将每个实例替换为第二种样式?我需要一个类似于 "match the literal ( followed by zero or more characters (including possibly whitespace) until you hit a )"?

的正则表达式

我已经试过 \( .* \) 但没用。有什么建议吗?

我正在使用 Visual Studio 2015 年的搜索和替换功能。

您可以使用

\(\s+(.*?)\s+\)

并替换为 ().

详情

  • \( - 一个 ( 字符
  • \s+ - 1+ 个空格
  • (.*?) - 第 1 组(替换模式中的 </code> 指的是此值):除换行字符外的任何 0+ 个字符尽可能少</li> <li><code>\s+ - 1+ 个空格
  • \) - 一个 ) 字符。

regex demo and a Regulex graph:

如果中间可以有任何字符,请使用 [\s\S\r]*? 而不是 .*?