我正在使用VB.NET编写Winforms应用程序,如何使用正则表达式删除字符串中“[”和“]”之间的空格?

例如,对于一个字符串

"[Product Name] Like '%Dragon Ball%' AND [Product Type] Like '%Toy%'"

我希望结果是
"[ProductName] Like '%Dragon Ball%' AND [ProductType] Like '%Toy%'"

我试过了,但是没有用:
Public Function RemoveSpaceInFieldNames(ByVal expression As String) As String
  Dim regex As RegularExpressions.Regex = New
  RegularExpressions.Regex(String.Format("\{0}\s*\{1}", "[", "]"))
  Return regex.Replace(expression, String.Empty)
End Function

最佳答案

See regex in use here

(?<=\[[^]]*)\s
  • (?<=\[[^]]*)在确保以下匹配项后向后看
  • \[从字面上匹配[
  • [^]]*匹配
  • 以外的任意字符
  • ]匹配任何空白字符

  • 如果您还想确保以后再有一个\s,则可以附加(?=[^[]*]),但是根据您的示例,我认为这不是必需的。

    另外,您也可以将]\s(?=[^[]*])修饰符一起使用,如this link所示。

    替换为空字符串。

    结果:Right to Left

    10-08 07:14