0

我想在 php 中执行一个正则表达式。我想从 $str 变量中选择 common_name = Bangladesh 。我穿着我的正则表达式。正则表达式在这里找不到任何匹配项。我怎样才能解决这个问题?

$str = "| conventional_long_name = People's Republic of Bangladesh | common_name = Bangladesh | image_flag = Flag of Bangladesh.svg";
    $pat = "/(?=\common_name\s=).*?(?=\s\|)/";

    if(preg_match($pat, $str, $matches)){
        echo "Matches found";
        echo $matches[0];
    } else {
        echo "No match found";
    }

结果显示

No match found
4

4 回答 4

3

你错过;了第一行的分号

于 2013-07-22T11:36:19.167 回答
2

你需要放在;最后$str = "...."

于 2013-07-22T11:36:49.887 回答
0

您在第一行末尾缺少一个分号:

将其更改为:

$str = "| conventional_long_name = People's Republic of Bangladesh | common_name = Bangladesh | image_flag = Flag of Bangladesh.svg";

此外,获得一个体面的 IDE 并省去每次都在 SO 上提出这个问题的麻烦!:)

于 2013-07-22T11:39:52.167 回答
0

您可能缺少代码第一行的分号

  $str = "| conventional_long_name = People's Republic of Bangladesh | common_name = Bangladesh | image_flag = Flag of Bangladesh.svg";
        $pat = "/(?=\common_name\s=).*?(?=\s\|)/";

        if(preg_match($pat, $str, $matches)){
            echo "Matches found";
            echo $matches[0];
        } else {
            echo "No match found";
        }
于 2013-07-22T11:41:25.550 回答