在php中获取两个字符串之间的所有字符串

时间:2016-02-15 13:27:33

标签: php

您好我正在寻找一个与此java代码完全相同的PHP

 List<String> strings = Arrays.asList(tempFinalString.replaceAll("^.*?>&", "")
            .split("<.*?(>&|$)"));

这会给出一个数组,其中包含两个字符?><

之间的所有字符

有人可以帮我找到它的确切PHP等价物吗?

我搜索了很多请帮助

3 个答案:

答案 0 :(得分:1)

您可以使用pregsplit,它几​​乎相同并返回字符串列表。

答案 1 :(得分:1)

您可以使用正则表达式

<?php
function getInbetweenStrings($start, $end, $str){
    $matches = array();
    $regex = "/$start([a-zA-Z0-9_]*)$end/";
    preg_match_all($regex, $str, $matches);
    return $matches[1];
}

$str = "<asdfasf?>dsdafs<asfasdfasf?>";
$str_arr = getInbetweenStrings('<', '\?>', $str);

print_r($str_arr);

这个问题非常相似:Get substring between two strings PHP

修改

当然,对于不同的参数,您需要更改函数参数: - )

$str = "<abcasdfasf>dsdafs<abcsfasdfasf>";
$str_arr = getInbetweenStrings('<abc', '>', $str);

print_r($str_arr);

另请注意,代码将拆分仅包含特定字符的字符串 - [a-zA-Z0-9 _]。

首先考虑学习正则表达式。

干杯!

答案 2 :(得分:1)

参考此链接

http://forums.devshed.com/php-development-5/values-string-tags-578670.html

并改变你的代码,

preg_match_all("#<abc([^<]+)>#", $yourstring, $ansvariable); 
//echo implode("::", $ansvariable[1]); 


foreach($yourstring[1] as $key => $val){
echo $yourstring[1][$key]."<br>"; // prints $val
}