在php中使用preg_match检测多个单词

Posted

技术标签:

【中文标题】在php中使用preg_match检测多个单词【英文标题】:Detect multiple words with preg_match in php 【发布时间】:2015-11-03 23:33:20 【问题描述】:

我想在读取第一行文件时检测一些单词。

这是我的代码

    $open  = @fopen($file,"r");
    $line  = @fgets($open);
    $close = @fclose($open);
    return preg_match('/\<\?php/',$line);

检测词

"<?php","<?","<html>"

我不知道如何处理多个单词, 请帮忙

【问题讨论】:

【参考方案1】:

http://php.net/manual/en/regexp.reference.alternation.php - 修改可以帮助你。在您的特定情况下,您必须将您的正则表达式扩展如下:

return preg_match('/^<(?:\?(?:php)?|html>)/',$line);

【讨论】:

抱歉,我不太理解这条评论。您是否在询问如何在 perl 中执行相同的检查?如果是,它会是这样的:perl -e 'my $str="&lt;?php"; if ($str =~ /^&lt;(?:\?(?:php)?|html&gt;)/) print "Matched!\n"' 啊,很简单。我们再次使用更改:return preg_match('/^&lt;(?:\?(?:php)?|html&gt;)|#!\/usr\/bin\/perl/',$line) 请注意斜杠被反斜杠转义。为了使正则表达式看起来更简单,我们可以使用“@”作为正则表达式的分隔符,如下所示:return preg_match('@^&lt;(?:\?(?:php)?|html&gt;)|#!/usr/bin/perl@',$line) 哦,非常感谢你,是的,很简单:),我正在学习 preg_match,今天我也向你学习了很好的模式

以上是关于在php中使用preg_match检测多个单词的主要内容,如果未能解决你的问题,请参考以下文章