在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="<?php"; if ($str =~ /^<(?:\?(?:php)?|html>)/) print "Matched!\n"'
啊,很简单。我们再次使用更改:return preg_match('/^<(?:\?(?:php)?|html>)|#!\/usr\/bin\/perl/',$line)
请注意斜杠被反斜杠转义。为了使正则表达式看起来更简单,我们可以使用“@”作为正则表达式的分隔符,如下所示:return preg_match('@^<(?:\?(?:php)?|html>)|#!/usr/bin/perl@',$line)
哦,非常感谢你,是的,很简单:),我正在学习 preg_match,今天我也向你学习了很好的模式以上是关于在php中使用preg_match检测多个单词的主要内容,如果未能解决你的问题,请参考以下文章