我如何在两个字符串之间获取字符串

时间:2016-03-18 22:01:18

标签: php string

我有一个字符串,我需要在文本之间获取文本

方案

MyCar extends Vehicle

从上面的字符串我需要得到

SELECT * FROM EMP WHERE EMPID > 0

上面的函数有效,如果我给$ InputString,$ StartStr和$ EndStr,但如果我没有传递$ EndStr它不能正常工作

array([0]=>'*',[1]=>'EMP')

function BetweenStr($InputString, $StartStr, $EndStr=0, $StartLoc=0) 
{
    if (($StartLoc = strpos($InputString, $StartStr, $StartLoc)) === false) { return; }
    $StartLoc += strlen($StartStr);
    if (!$EndStr) { $EndStr = $StartStr; }
    if (!$EndLoc = strpos($InputString, $EndStr, $StartLoc)) { return; }
    return substr($InputString, $StartLoc, ($EndLoc-$StartLoc));
}

2 个答案:

答案 0 :(得分:1)

var re = /\<a .*?href=("|')(.+?)('|") .+?\<\/a>/g

答案 1 :(得分:0)

如果你想按照自己的方式去做,那就应该这样做:

function BetweenStr($InputString, $StartStr, $EndStr=0, $StartLoc=0) 
{
    if (($StartLoc = strpos($InputString, $StartStr, $StartLoc)) === false) { return; }
    $StartLoc += strlen($StartStr);
    if (!$EndStr) { $EndLoc = strlen($InputString); }
    if (!$EndLoc = strpos($InputString, $EndStr, $StartLoc)) { return; }
    return substr($InputString, $StartLoc, ($EndLoc-$StartLoc));
}