我想从字符串中删除特殊符号,句点,连字符,下划线和数字 - PHP

Dis*_*yal 1 php regex string preg-replace

我的要求是从字符串中删除除下划线之外的所有特殊符号.

我在用..

$string = 'text-text_text+text@text(text)text&text.text*text\text/text';
$columnName = preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '_', $string);
Run Code Online (Sandbox Code Playgroud)

输出:

text-text_text_text_text(text)text&text.text_text_text_text
Run Code Online (Sandbox Code Playgroud)

但它不删除句号,符号,括号和破折号.在创建这个正则表达式时,我感到无助.请帮忙..

rab*_*dde 8

如果要删除除字母,数字和下划线之外的所有字符,只需使用

preg_replace('/[^a-zA-Z0-9]/', '_', $string);

类似的表达[^...PREG功能意味着,要保持所有以下字符(这样你的表达导致非(!)ASO删除&号,括号

BTW:我在表达式中省略了下划线,因为它会再次被下划线替换,所以不需要在正则表达式中列出它