在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检测多个单词的主要内容,如果未能解决你的问题,请参考以下文章

检测字符串是不是包含多个单词的更好方法

如何使用 PHP 搜索包含多个单词的值的数据库?

使用PHP和MySQLi进行数据库搜索的多个单词字符串

带有多个单词的PHP Mysql搜索查询

是否可以查看字符串是否包含 [多个] 字典单词?

PHP Code Igniter搜索多个单词