假设我有这个:
$hello = "Hello, is StackOverflow a helpful website!? Yes!";
我想去掉标点符号,输出为:
hello_is_stackoverflow_a_helpful_website_yes
我该怎么做?
最佳答案
# to keep letters & numbers
$s = preg_replace('/[^a-z0-9]+/i', '_', $s); # or...
$s = preg_replace('/[^a-z\d]+/i', '_', $s);
# to keep letters only
$s = preg_replace('/[^a-z]+/i', '_', $s);
# to keep letters, numbers & underscore
$s = preg_replace('/[^\w]+/', '_', $s);
# same as third example; suggested by @tchrist; ^\w = \W
$s = preg_replace('/\W+/', '_', $s);
对于字符串
$s = "Hello, is StackOverflow a helpful website!? Yes!";
结果(对于所有示例)是
Hello_is_StackOverflow_a_helpful_website_Yes_
享受吧!
关于PHP 带标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5689918/