Preg匹配不匹配,无法弄清楚原因

时间:2011-05-22 22:08:14

标签: php regex preg-match

我正在使用RegEx Helper网站(http://regexpal.com/)和

ENTER.+Security

匹配以下内容:

  

进入动物健康,食品安全和生物安全的LSU开源智能团队

然而,PHP不会preg_match它,我无法弄清楚,我现在已经尝试了几个小时,我觉得我真的很愚蠢,我无法得到这个小块。

任何人都明白为什么?我已经尝试了各种组合但是,我能得到它以匹配它。这特别令人沮丧,因为这是迄今为止我最短最简单的RegEx,但它不会匹配。

代码

$title = '/(ENTER.+Security)/';


$file = shell_exec('pdf2txt.py docs/April.pdf');
preg_match_all($title, $file, $m);

print_r($m[0]);

当我删除preg_match部分,并且我只打印$文件时,有几十个视觉匹配,但它不会以编程方式匹配它。

我所看到的只是:

Array ( ) 

但它应该匹配的文字在这里:

... /March/17031101.asp(2011年4月4日访问)。世界卫生组织。国家食品  和药物管理局获得WHO批准的疫苗监管系统。 3月1日, 2011. http://www.wpro.who.int/china/media_centre/press_releases/PR_20110301.htm (2011年4月4日访问)。 进入开源智能团队LSU动物中心 健康,食品安全和生物安全 特别兴趣情报报告 - 提醒 韩国 - 小麦粉混合产品的标签问题......

2 个答案:

答案 0 :(得分:2)

如果没有看到代码,很难确切知道发生了什么,但我的猜测是你没有正确划分你的表达。试试这个:

preg_match('#ENTER.+Security#', $str);

答案 1 :(得分:2)

尝试计算多行。当你将它粘贴到该网站时,很有可能它会删除任何换行符。

preg_match('/ENTER.+Security/m',$str) //note the /m

示例中的正斜杠是分隔符。以下m告诉它匹配多行。