从PHP中的字符串中删除除字母数字字符之外的所有内容

Cli*_*ote 36 php regex string

我想要一个正则表达式或其他字符串,它可以替换字符串中除字母数字字符(a-z0-9)之外的所有字符串.所有的事情,@#$(@*810都应该被剥夺.有任何想法吗?

编辑:我现在需要这个去除一切,但允许点,所以除了a-z, 1-9, ..想法?

gna*_*arf 67

$string = preg_replace("/[^a-z0-9.]+/i", "", $string);
Run Code Online (Sandbox Code Playgroud)

匹配一个或多个字符而不是az 0-9 [不区分大小写]或"." 并替换为""

  • @kuchi:一个非常老的问题,但是我刚遇到它:如果用空字符串替换它并没有什么不同。如果您用其他东西代替,例如破折号(`“-”`),它确实会有所作为。使用`+`会将“ test $!§test”`更改为“ test-test”`。如果没有`“ +”`,它将变为`“ test --- test”` (2认同)

Cor*_*ook 20

我喜欢使用[^ [:alnum:]]来减少错误的空间.

preg_replace('/[^[:alnum:]]/', '', "(ABC)-[123]"); // returns 'ABC123'
Run Code Online (Sandbox Code Playgroud)