PHP - Pregmatch帮助

Rob*_*low 1 php regex preg-match

我试图解析PHPIDS的XML规则列表(可在其网站http://phpids.org/上下载),使用XML的正则表达式对输入的URL进行解析.

现在,我对正则表达式知之甚少,而且我已经尝试过环顾四周,而且我没有找到有关它的更多信息,我发现它很有帮助.

如果URL == regex die(),我想做的就是这样的事情(psuedo);

这是我最近的一次尝试:

<?php
$file="default_filter.xml";
$load = simplexml_load_file($file);

$regex = $load->filter->rule;
$url = explode(" ","http://localhost/test.php");
$url2 = "http://localhost/test.php";
if(in_array($regex,$url))
{
echo "bad url";
}
if(preg_match($regex,$url2))
{
echo "bad url";
}
//The above gives me Warning: preg_match() [function.preg-match]: Unknown modifier '|' in C:\wamp\www\test.php on line 12
//Which, already i don't understand regex so i dont know why the above is a problem...
?>
Run Code Online (Sandbox Code Playgroud)

如果我可以让它工作,我将循环规则,但现在我只是尝试1正则表达式让它工作.

但我无法弄明白让正则表达式正常工作.

这是从XML文件中提取的正则表达式:

<rule><![CDATA[(?:"[^"]*[^-]?>)|(?:[^\w\s]\s*\/>)|(?:>")]]></rule>
Run Code Online (Sandbox Code Playgroud)

虽然我不明白一点......

提前感谢任何可以帮助我的人.

Jim*_* W. 5

关于我唯一可以说的是缺少分隔符.鉴于$regex只包含正则表达式而不包含<![CDATA[这应该起作用的部分:

if(preg_match('#'.$regex.'#',$url2))
Run Code Online (Sandbox Code Playgroud)

试一试.