2012-09-06 63 views
1

我的要求是从字符串中删除除下划线之外的所有特殊符号。我想从字符串中删除特殊符号,句点,连字符,下划线和数字 - PHP

我使用..

$string = '[email protected](text)text&text.text*text\text/text'; 
$columnName = preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '_', $string); 

输出:

text-text_text_text_text(text)text&text.text_text_text_text 

但它不删除时期,符号,支架和仪表板。创建这个正则表达式时,我感到无助。请帮助..

+3

'的preg_replace('/ [^ A-ZA-Z0-9 ] /','_',$ string);' – rabudde

+0

嘿thanx ..它的工作..添加它作为答案il标记它是正确的。 –

回答

8

当你想删除除字母,数字字符所有,并强调只要使用

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

中的表达式如函数意味着,你想保留所有后面的字符(这样你的表达式不会(!)移除&符号,方括号a.s.o.

BTW:我ommit下划线的表达,因为它会通过一个下划线再次被替换,因此没有必要列出它的正则表达式

+0

thanx ..我会牢记它。 –

4

尝试:

$string = '[email protected](text)text&text.text*text\text/text'; 
$columnName = preg_replace('/[-`[email protected]#$%\^&*()+={}[\]\\\\|;:\'",.><?\/]/', '_', $string); 

输出:

text_text_text_text_text_text_text_text_text_text_text_text 
+0

但rabudde的更好。 –

+0

ya .. rabudde提供的答案是如此简单.. –

相关问题