我试过了多个函数来提取两个字符串之间的任何内容,分隔符可能包含特殊字符,我想这就是为什么没有为我工作。在两个分隔符之间提取字符串的最可靠方法
我目前的功能:
function between($str, $startTag, $endTag){
$delimiter = '#';
$regex = $delimiter . preg_quote($startTag, $delimiter)
. '(.*?)'
. preg_quote($endTag, $delimiter)
. $delimiter
. 's';
preg_match($regex, $str, $matches);
return $matches;
}
字符串的例子:
#{[email protected]}#
Text i want
#{END}#
#{[email protected]}#
Second text i want
#{END}#
如何改善这种或建议另一种解决方案:
- 支持任何类型的字符或新线
- 提取多个字符串(如果找到)
当前的行为:只返回了第一场比赛,而且还返回匹配加上周围的标签是不希望