正则表达式:匹配所有特殊字符但不匹配 *

JPF*_*oia 2 regex

关于正则表达式的另一个问题。

我正在尝试匹配除“*”之外的所有特殊字符。

因此,如果我将我的正则表达式与:

John%%%* dadidou
Run Code Online (Sandbox Code Playgroud)

我应该得到:

John* dadidou
Run Code Online (Sandbox Code Playgroud)

此处:如何与正则表达式匹配 PHP 中除“-”以外的所有特殊字符?

要使用的已接受答案建议(如果我想排除“-”):

[^\w-]
Run Code Online (Sandbox Code Playgroud)

但这不是说:“不是特殊字符,不是 -”,这有点多余吗?

anu*_*ava 5

你真正想要的是这个用于匹配的正则表达式:

[^\w\s*]+
Run Code Online (Sandbox Code Playgroud)

用空字符串替换它。

这意味着匹配 1 个或多个符合以下条件的任何字符:

  1. 不是单词字符 [AND]
  2. 不是空格 [AND]
  3. 不是字面意思 *

正则表达式演示

  • `\w` 也会匹配 `_`(_特殊字符_)。`[^A-Za-z0-9\s*]+` (3认同)