如何删除vb.net中方括号之间的空格?

Jin*_*ell 2 regex vb.net

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

例如,对于一个字符串

"[Product Name] Like '%Dragon Ball%' AND [Product Type] Like '%Toy%'"
Run Code Online (Sandbox Code Playgroud)

我想要结果

"[ProductName] Like '%Dragon Ball%' AND [ProductType] Like '%Toy%'"
Run Code Online (Sandbox Code Playgroud)

我尝试过这个,但它不起作用:

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
Run Code Online (Sandbox Code Playgroud)

ctw*_*els 6

请参阅此处使用的正则表达式

(?<=\[[^]]*)\s
Run Code Online (Sandbox Code Playgroud)
  • (?<=\[[^]]*) 积极的外观确保以下匹配
    • \[[字面上匹配
    • [^]]*匹配除]任意次数以外的任何字符
  • \s 匹配任何空白字符

(?=[^[]*])如果你想确保之后的某个]时间,你可以附加,但是,根据你的样本,我认为这不是必要的.

或者,您也可以使用此链接显示\s(?=[^[]*])Right to Left修饰符.

替换为空字符串.

结果: [ProductName] Like '%Dragon Ball%' AND [ProductType] Like '%Toy%'