是否有PHP函数可以在两个字符之间抓取字符串。例如,我想知道百分号和美元符号之间的含义:
%该处$
这是什么功能?
答案 0 :(得分:7)
你可以用正则表达式来做到这一点:
$string = 'test%HERE$glop';
$m = array();
if (preg_match('/%(.*?)\$/', $string, $m)) {
var_dump($m[1]);
}
会得到你:
string 'HERE' (length=4)
几个笔记:
$
具有转义功能,因为它具有特殊含义(字符串结尾) .*
%
和$
.*?
()
围绕它。答案 1 :(得分:3)
您可以使用正则表达式来获取:
preg_match('/%([^$]*)\\$/', $str, $match)
如果找到匹配项,$match[0]
将包含整个匹配项,$match[1]
包含%
和$
之间的文字。
但您也可以使用strpos
之类的基本字符串函数,并在此之后搜索%
和第一个$
:
if (($start = strpos($str, '%')) !== false && ($end = strpos($str, '$', $start)) !== false) {
$match = substr($str, $start, $end-$start);
}