PHP preg_match找到某个单词

时间:2011-08-21 20:32:58

标签: php preg-match

我正在尝试使用preg_match在文本字符串中查找某个字词。

$pattern = "/" . $myword . "/i";

此模式会在“卡通”中找到“ car ”这个词...... 我只需要出现某个单词的匹配。

P.S这个词可能在文本的任何地方。 感谢

3 个答案:

答案 0 :(得分:5)

使用word-boundaries包装正则表达式:

$pattern = "/\b" . $myword . "\b/i";

或者,如果您的$myword可能包含regex-meta-chars,请执行以下操作:

$pattern = "/\b" . preg_quote($myword) . "\b/i";

答案 1 :(得分:0)

试试这个:

$pattern = "/\b" . $myword . "\b/i";

在正则表达式中,\b转义字符表示“单词边界”字符。通过将搜索词包装在这些边界匹配中,您可以确保只匹配单词本身。

答案 2 :(得分:0)

$subject = "abcdef";

$pattern = '/^def/';

preg_match($pattern, $subject, $matches, PREenter code hereG_OFFSET_CAPTURE, 3);

print_r($matches);

图案

要搜索的模式,作为字符串。

受试者

输入字符串。

匹配

如果提供了匹配,那么它将填充搜索结果。 $matches[0]将包含与完整模式匹配的文字,$matches[1]将包含与第一个捕获的括号subpattern匹配的文字,依此类推。

标志

标志可以是以下标志:

PREG_OFFSET_CAPTURE

如果传递此标志,则对于每个发生的匹配,还将返回附加字符串偏移量。请注意,这会将匹配的值更改为一个数组,其中每个元素都是一个数组,该数组由偏移量为0的匹配字符串和偏移量为1的主体的字符串偏移量组成。

偏移

通常,搜索从主题字符串的开头开始。可选参数偏移量可用于指定开始搜索的备用位置(以字节为单位)。

实施例

if (preg_match('/;/', $_POST['value_code'])) 

    {
        $input_error = 1;
        display_error(_("The semicolon can not be used in the value code."));
        set_focus('value_code');
    }