PHP正则表达式失败

时间:2016-04-01 14:12:19

标签: php regex

我有一个带有章节标题的文件,如下所示:

PLAY [Global Inventory] ********************************************************

我使用PHP来解析文件,但是我无法正确地删除正则表达式。我需要提取"全球库存"从上面的标题。

这是我到目前为止所拥有的:

function check_section_type($row) {
        $pattern = '/PLAY(\s*)(\[)([a-z\s]*)(\])(\**)/i';
        preg_match($pattern, $row, $matches);
        var_dump($matches);
}

var dump命令返回一个空数组... 我尝试了一些模式的变化,但我无法看到我出错的地方。 我试过的其他模式:

$pattern = '/PLAY(\s*)(\[)([a-zA-Z\s]*)(\])(\**)/i';

 $pattern = '/PLAY(\s*)(\[[a-zA-Z\s]\]*)(\])(\**)/i';

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

考虑以下正则表达式:

$str = "PLAY [Global Inventory] ********************************************************";
preg_match("/PLAY \[([^]]+?)\]/iu", $str, $matches);

print_r($matches[1]);   // "Global Inventory"