2011-02-14 130 views
13

如何在substr() PHP函数中使用正则表达式来获取与模式匹配的子字符串?正则表达式通过php获取子字符串

编辑:

例如:

$name = 'hello [*kitty*],how good is today'; 

我想要得到的是[....]占位符之间。

+1

能否请您提供一个样本输入 - 输出?很难告诉你想要实现什么,如果你想匹配一部分字符串,我怀疑'sub_str`函数是需要的。 `preg_match`就足够了。 – 2011-02-14 11:23:18

+0

请给你的问题!我们给你的解决方案 – 2011-02-14 11:23:36

+0

[PHP的:如何找到一个字符串中的子字符串的开始和结束?](http://stackoverflow.com/questions/3706175/php-how-to-find-the-beginning字符串的末尾字符串) – outis 2012-07-12 03:19:16

回答

35

substr()只匹配整个字符串。您正在寻找preg_match()

更新

$name = 'hello [*kitty*],how good is today'; 
preg_match('/\[(.*?)\]/', $name, $match); 
var_dump($match); 

可以在$match[1]找到该名称。我建议你阅读正则表达式来理解preg_match()

4

试试这个:

$matches = array(); 
preg_match("/\[([^]]*)\]/", 'hello [*kitty*],how good is today', $matches); 
print_r($matches); 

哎呀,现在修好了:)