Php正则表达式问题-“未知修饰符R”

Php正则表达式问题-“未知修饰符R”,php,Php,我正在尝试使用以下正则表达式在请求XML标记和标记之间提取一些文本: (?<=(<Request>)).*(?=(</Request>)) RegexBuddy告诉我这很好,但preg_match返回以下错误: 未知修饰符R。在/之前放置反斜杠使其不返回任何内容。有人知道问题出在哪里吗 代码: 编辑:我现在注意到,文件以一个未识别字符打开,每个标记打开后的二进制值为3F问题是,在PHP和许多语言中,regexp类似于/pattern/modifier,其中修饰符

我正在尝试使用以下正则表达式在请求XML标记和标记之间提取一些文本:

(?<=(<Request>)).*(?=(</Request>)) 
RegexBuddy告诉我这很好,但preg_match返回以下错误: 未知修饰符R。在/之前放置反斜杠使其不返回任何内容。有人知道问题出在哪里吗

代码:


编辑:我现在注意到,文件以一个未识别字符打开,每个标记打开后的二进制值为3F问题是,在PHP和许多语言中,regexp类似于/pattern/modifier,其中修饰符可以是g multiple match。如果要在regexp中使用/,必须使用\:


有关PHP中模式的更多信息,请参阅。

提供原始字符串和必需的resultAlright是有意义的,即使用作分隔符也不会返回任何内容。我现在注意到该文件以乱码文本打开,请阅读我的编辑以了解更多详细信息。@user1199471能否输入完整代码?从fopen到preg_match或您正在使用的其他regexp函数。@user1199471我在您的代码中没有看到分隔符,我尝试过:preg_match_all'?
$parsedQuery = fopen("c:\\query", "r") ;
$parsed ="". 
while (!feof($parsedQuery)) {
    $parsed .= fgets($parsedQuery) ;} 
$reg = "#(?<=(<Request>)).*(?=(</Request>))#";

$match = array();
preg_match($reg, $parsed, $match);
print_r($match);
/(?<=(<Request>)).*(?=(<\/Request>))/