对于字符类,preg_match错误:编译失败:缺少终止]

时间:2011-03-25 14:00:18

标签: php preg-match

我有一系列.txt文件,我正在for循环中读取。我在[widget _]

形式的一些文本文件中放置了一个令牌

因此,文本文件的全部内容可能是[widget_search]。另一个文本文件可能包含内容[widget_recent-posts]。其他人可能只有html格式的文本而根本没有令牌。

在for循环中,我正在做一个preg_match来查看文本文件是否与内容匹配我的标记模式。如果匹配,我正在执行一些条件代码。

但是,当我运行跟踪测试以查看是否匹配时,我收到错误。

错误是:

警告:preg_match()[function.preg-match]:编译失败:缺少终止]对于C:\ xampplite \ htdocs \ test \ wp-content \ plugins \ widget-test \ widget-中偏移量为8的字符类第227行的test.php

这是第227行的代码:

if (preg_match("/[widget_/i",$widget_text)) {//do something}

2 个答案:

答案 0 :(得分:13)

你应该像这样逃避[字符:

if (preg_match("/\[widget_/i",$widget_text)) { // do something }

答案 1 :(得分:0)

使用preg_quote更加清晰:

if (preg_match(preg_quote("/[widget_/i"),$widget_text)) {//do something}