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