我试图从一个更大的字符串中提取一个字符串,它在":"和";"之间得到所有内容.
当前
Str = 'MyLongString:StringIWant;'
Run Code Online (Sandbox Code Playgroud)
期望的输出
newStr = 'StringIWant'
Run Code Online (Sandbox Code Playgroud) 我需要一个函数来返回两个单词(或两个字符)之间的子串.我想知道是否有一个PHP功能实现了这一点.我不想考虑正则表达式(好吧,我可以做一个,但真的不认为这是最好的方式).思考strpos和substr功能.这是一个例子:
$string = "foo I wanna a cake foo";
Run Code Online (Sandbox Code Playgroud)
我们称之为功能:$substring = getInnerSubstring($string,"foo");
它返回:"我想要一块蛋糕".
提前致谢.
更新:
嗯,到现在为止,我只能在一个字符串中得到一个字符串只有两个字,你是否允许让我走得更远,并且问我是否可以扩展使用getInnerSubstring($str,$delim)来获取delim值之间的任何字符串,例:
$string =" foo I like php foo, but foo I also like asp foo, foo I feel hero foo";
Run Code Online (Sandbox Code Playgroud)
我得到一个类似的数组{"I like php", "I also like asp", "I feel hero"}.
我有一个函数可以提取 $string 内 $start 和 $end 之间的内容
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
Run Code Online (Sandbox Code Playgroud)
这样做的问题是它只会让我找到字符串中第一次出现的位置。每个例子:
$text = "John has 13 oranges and Jane has 8 oranges";
$how_many_oranges = get_string_between($text,"has "," oranges");
echo $how_many_oranges; // echos "13"
Run Code Online (Sandbox Code Playgroud)
我需要它来查找字符串中最后一次出现的位置,以便 $how_many_oranges = "8";
我是PHP的初学者.我有字符串:
$fullstring = "this is [tag]dog[/tag], [tag]cat[/tag], [tag]lion[/tag]";
Run Code Online (Sandbox Code Playgroud)
我想"cat"从我的字符串中获取字符串$fullstring.
我曾经试过这个:
但我只能得到第一个字符串(dog).感谢您的时间.
Thet Cartter.