删除括号前后的空格

Nic*_*ero 3 php regex preg-replace

我试图打开括号后和圆括号和方括号的括号之前删除一个或多个空格.

$s = "This is ( a sample ) [ string ] to play with"
Run Code Online (Sandbox Code Playgroud)

预期结果:

"This is (a sample) [string] to play with"
Run Code Online (Sandbox Code Playgroud)

我设法删除空格之前:

$s = preg_replace('/\s+(?=[\])])/', '', $s);
Run Code Online (Sandbox Code Playgroud)

结果:

"This is ( a sample) [ string] to play with"
Run Code Online (Sandbox Code Playgroud)

但不是空格的括号!

Pot*_*toツ 10

试试这个正则表达式:

(?<=[([]) +| +(?=[)\]])
Run Code Online (Sandbox Code Playgroud)

单击"演示"

用空白字符串替换匹配项

说明:

  • (?<=[([]) +- 匹配1个出现的空格,前面有一个[(
  • | - 要么
  • +(?=[)\]])- 匹配1次出现的空格,后面跟着)]

  • 你可以保存一个字符:`(?<= [([])+ | +(?= [])])`lol (2认同)