正则表达式获取字符串之前,首先斜线
问题描述:
我试图从EUR/GBP正则表达式获取字符串之前,首先斜线
$s = 'EUR/GBP'
preg_match('//', $s, $matches);
$s = $matches[0];
这目前没有返回得到EUR。
任何想法我错了吗?
答
你可以用 '爆炸',而不是正则表达式。
$values = explode('/', 'EUR/GBP');
echo $values['0']; // EUR
+1
让我们不要为每件事都使用'爆炸',好吗?正确地说,PHP有'strtok'。 – mario 2012-02-01 20:40:30
答
- 您的字符串不是用引号包裹
- 你的正则表达式是空
- 你没有进入正确的数组索引
$s = 'EUR/GBP';
preg_match('/([^\/]+)/', $s, $matches);
$s = $matches[1];
然而,这种情况下,使用像explode()
这样的函数可能是一个更好的主意。
答
试试这个:
$parts = explode('/', $s);
Array
(
[0] => EUR
[1] => GBP
)
嗯....'$ s'不是一个字符串。正则表达式匹配字符串。事实上,我真的不知道'$ s'应该在这里代表什么。 – 2012-02-01 20:31:01
你真的需要一个正则表达式吗?我想你应该用'substr'和'strpos'来代替。 – Pateman 2012-02-01 20:32:46