2012-04-24 68 views
0

我是新來的正則表達式,我認爲這是我最好的解決方案。我試圖找到一個特殊字符被發現後刪除所有文本。刪除特殊字符後的所有內容

目前我正與

preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '', $word); 

打不過你可能知道,只有第一個特殊字符後發現刪除所有的特別包機,不是萬能的。

+8

每個角色都有自己的特色。 – 2012-04-24 16:55:17

+0

'a-zA-Z0-9_%[]。()%& - '特殊字符?或者它與它們有什麼不同? – sch 2012-04-24 17:08:22

回答

1

如果你想刪除的每一個字符從a-zA-Z0-9_ %[].()%&-不同的第一個字符開始,你可以使用以下命令:

preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-].*/s', '', $word); 

相反,如果你想找到從a-zA-Z0-9_ %[].()%&-一個字符後,除去每一件事情,您可以使用以下命令:

preg_replace('/[a-zA-Z0-9_ %\[\]\.\(\)%&-].*/s', '', $word); 
1

你可以把它周圍,並使用preg_match

preg_match('/^[a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', $word, $matches); 

$matches[0]將包含您正在查找的值。

0

你可以簡單地做

$word = "Overflow's"; 

preg_match('/[a-zA-Z0-9_]+/', $word, $matches); 

print_r($matches); 

將返回:

Array 
(
    [0] => Overflow 
)