2012-02-01 79 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 
) 
相关问题