我有一个数组:
$testcase = array(
array('breadjambread', "jam"),
array('breadjammbread', "jam"),
array('xxbreadjambreadyy', "jam"),
array('xxbreadyy', ""),
array('xxbreadbreadjambreadyy', "breadjamm"),
array('breadAbread', "A"),
array('breadbread', ""),
array('abcbreaz', ""),
array('xyz', ""),
array('', ""),
array('breadbreaxbread', "breax"),
array('breaxbreadybread', "y"),
array('breadbreadbreadbread', "breadbread"),
array('breadbread5breadbread', "breadbread"),
array('breadbreadbreadbread', "bread5bread"),
);
我想获得"面包"。
之间的子串Ex: array[0][0]="breadjambread and I will get the "jam"
array[1][0]="breadjammbread", I will get the "jamm"
array[2][0]="xxbreadjambreadyy", the result will be "jam"
有什么想法可以解决这个问题?
答案 0 :(得分:0)
使用正则表达式:
if (preg_match('/bread(.*?)bread/', $string, $match)) {
$word_between_bread = $match[1];
}
答案 1 :(得分:0)
使用正则表达式,您可以匹配由其他字符串包围的字符串:
preg_match('/(?<=bread).+?(?=bread)/', $string, $matches);
var_dump($matches);
.+?
是您要匹配的内容,(?<=bread)
表示它应该有&#34;面包&#34;在它的前面(?=bread)
意味着它应该有&#34;面包&#34;背后。
您还可以使用strpos()
和substr()
函数在两个其他字符串之间查找字符串,但这需要您进行一些反复试验。