2012-02-01 115 views
-2

我試圖從EUR/GBP正則表達式獲取字符串之前,首先斜線

$s = 'EUR/GBP' 
preg_match('//', $s, $matches); 
$s = $matches[0]; 

這目前沒有返回得到EUR

任何想法我錯了嗎?

+2

嗯....'$ s'不是一個字符串。正則表達式匹配字符串。事實上,我真的不知道'$ s'應該在這裏代表什麼。 – 2012-02-01 20:31:01

+0

你真的需要一個正則表達式嗎?我想你應該用'substr'和'strpos'來代替。 – Pateman 2012-02-01 20:32:46

回答

4

你可以用 '爆炸',而不是正則表達式。

$values = explode('/', 'EUR/GBP'); 
echo $values['0']; // EUR 
+1

讓我們不要爲每件事都使用'爆炸',好嗎?正確地說,PHP有'strtok'。 – mario 2012-02-01 20:40:30

4
  1. 您的字符串不是用引號包裹
  2. 你的正則表達式是空
  3. 你沒有進入正確的數組索引

$s = 'EUR/GBP'; 
preg_match('/([^\/]+)/', $s, $matches); 
$s = $matches[1]; 

然而,這種情況下,使用像explode()這樣的函數可能是一個更好的主意。

1

試試這個:

$parts = explode('/', $s); 

Array 
(
    [0] => EUR 
    [1] => GBP 
) 
相關問題