preg_replace除了数字,字母,句点和斜线之外的所有内容?

use*_*794 7 php regex preg-replace

我有一个正则表达式除了字母之外的所有东西.数字和句号.我该如何添加反斜杠呢?

$targetFile = preg_replace('/[^A-Za-z0-9-.]/', '', $targetFileDirty);
Run Code Online (Sandbox Code Playgroud)

mik*_*kel 20

你可以通过在它前面放一个反斜杠来逃避反斜杠 - $targetFile = preg_replace('/[^A-Za-z0-9-.\/]/', '', $targetFileDirty);

或者,或许更好,您可以使用不同的分隔符,例如 $targetFile = preg_replace('#[^A-Za-z0-9-./]#', '', $targetFileDirty);

  • 只是一个问题,为什么你需要在数字9之后用" - "表示一段时间? (4认同)

Tot*_*oto 7

要兼容unicode,您可以使用:

$targetFile = preg_replace('#[^\pL\pN./-]+#', '', $targetFileDirty);
Run Code Online (Sandbox Code Playgroud)