使用php正则表达式匹配字符串中的全文

时间:2015-08-04 08:42:06

标签: php regex preg-match

让我说我有这样的句子:“Hello world这是一个测试”。在这句话中,我希望与“世界测试”或“地狱之类”相匹配。我怎么能用preg_match做到这一点?这可能类似于mysql全文搜索。

        UIView.animateWithDuration(1.0, animations: {
            UIGraphicsBeginImageContext(self.view.frame.size)
            theCard.Background!.drawInRect(self.view.bounds)
            var image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            self.view.backgroundColor = UIColor( patternImage: image )
            self.view.alpha = 1.0
        })

4 个答案:

答案 0 :(得分:1)

您可以使用\b将边界定义为

/\b(world\stest|hell\sthis)/

<强>解释

  1. \b在字边界处断言位置
  2. (world\stest|hell\sthis) 这将检查world testhell this

答案 1 :(得分:0)

<?php
$str = "Hello world this is a test";
$src1 = 
$src1 = str_replace(' ','.*',$src1);
preg_match("/(.*$src1.*)/i", $str, $results);

print_r($results);
?>

答案 2 :(得分:0)

我试过这个,看起来像是在为我工作:

$searchword = str_replace(" ", "|", $src1);
preg_match_all("/$searchword/i", $str)

非常感谢你的帮助。

答案 3 :(得分:0)

您应该合并两个表达式:world.*testhell.*this。结果表达式为world.*test|hell.*this。 (FIY .*匹配任意数字的任何数字。)

PS:您还可以考虑使用valgrind(1)

$str = "Hello world this is a test";

if (pattern('world.*test|hell.*this')->matches($str)) 
{
    // Matched! :)
}