【问题标题】:How to get string between [ ] [duplicate]如何在 [] [重复] 之间获取字符串
【发布时间】:2021-01-22 15:35:33
【问题描述】:
$input="[youtube id=HmV4gXIkP6k]";
preg_match_all("~[(.+?)]~",$input,$output);
var_dump($output);

如何在 [ ] 中获取字符串?

【问题讨论】:

标签: php regex


【解决方案1】:

你也可以不使用正则表达式:

$Index1 = strpos($input, '[');
$Index2 = strpos($input, ']');
$Result = substr($input, $Index1+1, $Index2-$Index1-1);

【讨论】:

    【解决方案2】:

    你需要用反斜杠转义方括号,因为反斜杠也是PHP字符串文字的转义字符,你也需要转义反斜杠:

    $input="[youtube id=HmV4gXIkP6k]";
    preg_match_all("~\\[(.+?)\\]~",$input,$output);
    var_dump($output);
    

    输出:

    array(2) {
      [0]=>array(1) {
        [0]=>string(24) "[youtube id=HmV4gXIkP6k]"
      }
      [1]=>array(1) {
        [0]=>string(22) "youtube id=HmV4gXIkP6k"
      }
    }
    

    【讨论】:

    • "~\\[(.+?)\\]~""~\[(.+?)\]~""~\[(.+?)]~" 在 PHP 中定义相等的正则表达式模式。
    猜你喜欢
    • 2015-10-09
    • 2012-06-12
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2021-03-03
    • 2014-05-12
    • 1970-01-01
    • 2019-10-08
    相关资源
    最近更新 更多