2011-12-04 102 views
2

我知道如何將一個字符串中刪除特定字符,但不知道以下幾點:PHP之間幷包括特定字符刪除字符

例如字符串:Code [7845] [5589] [554] [4]

我需要刪除它們之間的[]所有實例和一切,然後修剪掉空格所以我最終只是:Code

這可能嗎?

+0

到目前爲止您嘗試過什麼?這是絕對可能的,只需要一個簡單的表達。 –

回答

1

嘗試以下操作:

$str = trim(preg_replace('/\[\d+\]/', '', 'your_string_here')); 

該函數的第一個參數是一個正則表達式。你看到的\d與一個數字相匹配,並且+後面說明你應該至少匹配1個數字。 Check here瞭解有關preg_replace的更多信息。 Check here有關正則表達式的更多信息。

+0

不修剪空白。 – FailedDev

+0

@FailedDev,yep編輯了答案。 –

5

這將做到這一點:)

$result = preg_replace('/\[.*?\]|\s*/', '', $subject); 

說明:

" 
\[ # Match the character 「[」 literally 
.  # Match any single character that is not a line break character 
    * # Between zero and unlimited times, as many times as possible, giving back as needed (greedy) 
\] # Match the character 「]」 literally 
" 

由於@Felix指出,這是一個相當簡單的表達。你應該看看here並嘗試熟悉你可以使用的各種技術。

+1

+1一個可行的答案! – nickb

+0

這將刪除這個[12asda]。他只要求數字值:) –

+0

@SavasVedova除非我的Englsh背叛了我,否則*之間的任何事物都意味着一切。 – FailedDev

1

您需要提供更多關於您的要求的細節。

假設:

$s = 'Code [7845] [5589] [554] [4]'; 

如果字符串總是與你是什麼後,剩下的總是可以丟棄開始,那麼這很可能是最有效的:

$s = trim(substr($s, 0, strpos($s, '['))); 

如果您想要保留原始字符串,並只刪除數字組,然後:

$s = trim(preg_replace('/\[\d+\]/', '', $s)); 
相關問題