2011-04-18 153 views
0

我有一個字符串數組。我需要所有不包含任何特殊字符的字符串。只允許一個到z。有沒有使用正則表達式的方法或有任何字符串函數?查找帶單引號的字符串

+0

'ST的陣列戒指樣品? – 2011-04-18 09:10:58

回答

0

您可以使用匹配僅包含A到Z和a到z的字符串的正則表達式^[a-zA-Z]*$。 (它也會匹配一個空字符串)。

說明:

  • ^是,在字符串的開始錨正則表達式錨(所以正則表達式開始從字符串的開頭匹配)
  • [a-zA-Z]是包含一個字符類字符我們要匹配
  • *指示它應(對於一次或多次使用+)
  • $爲的端部的錨定匹配零次或多次該字符串,所以正則表達式必須停止匹配在字符串的末尾或它不會匹配。

您使用的preg_match檢查一個字符串,看它是否有模式的匹配(如果沒有匹配的preg_match返回0,所以我們只檢查有匹配):

if (preg_match('/^[a-zA-Z]*$/', $subject) !== 0){ 
    //match 

因此,你然後可以遍歷字符串的陣列上,並創建這些與模式相匹配的新數組

+0

preg_match返回1或0,所以我認爲!== false不起作用。類型是不同的。 !== 0工作正常 – 2011-04-18 09:22:13

+0

@Nisnath良好的捕獲。 PHP返回值非常不一致。 – Yacoby 2011-04-18 09:25:04

0
$array = "your_array"; 
$output_array = array(); 
foreach ($array as $elem) { 
    if (preg_match('/^[a-zA-Z]{1,}$/', $elem)) { 
     $output_array[] = $elem; 
    } 
} 

在output_array將是您的數據