$string = "ce_content youtube_bMnXEbm-JGw first"
我希望在youtube_
之后获取字符串:bMnXEbm-JGw
$ string还可以包含其他内容,如:
$string = "image youtube_bMnXEbm$wdwJGw first highlight"
答案 0 :(得分:1)
$string = "image youtube_bMnXEbm\$wdwJGw first highlight";
首先,您要使用正则表达式来匹配所有这些字符串。第二部分的括号表示该部分字符串是分别捕获的。
preg_match_all('/youtube\_([^\s]+)/', $string, $matches);
由于您可能有多个匹配项,因此您必须循环遍历所有匹配项。这也会检查是否有任何匹配。
if (isset($matches[1]) && !empty($matches[1])) {
foreach($matches[1] as $match){
echo $match;
}
}
//output = bMnXEbm$wdwJGw
答案 1 :(得分:0)
使用整洁的内置PHP函数explode()
以下列方式拆分字符串,不需要饥饿的正则表达式引擎,例如:
<?php
$string = "image youtube_bMnXEbm$wdwJGw first highlight"
$pieces = explode("youtube_", $string );
foreach ($pieces as $key=>$value) {
echo $key.$value;
}
查看更多here。