我使用以下代码
$api_dump_reader = fopen($api_path, "r");
$content = fread($api_dump_reader, filesize($api_path));
$api_lines = explode("\n", $content);
foreach($api_lines as $line)
{
if (preg_match("(Class) [a-zA-Z]+ (\: [a-zA-Z]+)? (\[[a-zA-Z+]\])?", $line))
{
echo $line;
}
}
该表达式应该与以下示例匹配
Class Instance [notbrowsable]
Class Accoutrement : Instance
Class PlayerGui : BasePlayerGui [notCreatable]
...
为什么我的正则表达式会给我这个错误?我找不到错。
答案 0 :(得分:2)
你错过了斜杠:
if (preg_match("/(Class) [a-zA-Z]+ (\: [a-zA-Z]+)? (\[[a-zA-Z+]\])?/", $line))
{
echo $line;
}
尝试一下:)
答案 1 :(得分:0)
试试这个:
/(class) [a-z]+( \: [a-z]+)?( \[[a-z+]+\])?/i
作为RegExp。你把空白放在了错误的地方。它们需要放在可选组中。
编辑:
好的,我用分隔符得到它并将它们添加到我的RegExp中。这肯定是不正确的,但最重要的是RegExp本身存在问题,这些问题在先前输入的问题中没有 (重复)。