2013-12-10 116 views
-4

我正在通过sprintf()和其他字符串格式化函数,但我一直无法找到从字符串中剥离某些类型字符的确切解决方案。我为此写了一个函数(这看起来非常讨厌,并且根本不值得在此分享),但我确信有一种更简单的方法来满足我的需求。在PHP中格式化字符串

$var = "abc244$%!"; 

现在我想是这样的格式:

$alpha = some_function($var); // alphabets only 
$num = some_function($var); // numbers only 
$alpha2 = some_function($var); // alphabets and special characters, no numbers. 

好心的建议!

+4

请分享你已经尝试过了这些函数... – BenM

回答

2

要去除一切,除了数字,使用此:

$allnums=preg_replace("/[^0-9]/","",$var); 

对于所有的信件:

$letters=preg_replace('/\PL/u', "", $var); 

对于特殊字符:

$specialchars=preg_replace("/[a-zA-Z0-9]/", "", $var); 
+0

你已经使用单引号而不是双字符$字母,为什么? – Whocares

+0

@Mfaspk只是一个错字,其实并不重要 – scrblnrd3

+0

我在哪里可以学到更多关于正则表达式的知识? – Whocares