2012-09-06 109 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提供的答案是如此簡單.. –

相關問題