MongoRegex 类

(PECL mongo >=0.8.1)

Warning

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. Alternatives to this class include:

简介

这个类用于创建一个正则表达式。 通常这些表达式用于查询数据库中匹配的字符串。不常用的是,它们可以保存到数据库并用于检索。

正则表达式由四部分组成。 首先 / 作为起始的分隔符,然后是 pattern、另一个 / 以及最后包含 flag 的字符串。

Example #1 正则表达式

/pattern/flags

Mongo 能够识别六种正则表达式标记(flag):

  • i:大小写不敏感

  • m:多行

  • x:能够包含注释

  • l:语言环境

  • s:dotall,"." 匹配任何字符,包括换行符。

  • u:匹配 Unicode

类摘要

MongoRegex {
/* 字段 */
public string $regex ;
public string $flags ;
/* 方法 */
public __construct ( string $regex )
public string __toString ( void )
}

Table of Contents

User Contributed Notes

thusitha555 at gmail dot com 27-Oct-2014 03:36
here is an example for case insensitive search.If there are two fields (user_name/company_name) in collection;
<?php
$search_string
='baR';
$searchQuery = array(
           
'$or' => array(
                array(
                   
'user_name' => new MongoRegex("/^$search_string/i"),
                    ),
                array(
                   
'company_name' => new MongoRegex("/^$search_string/i"),
                    ),
                )
            );

$cursor = $customers->find($searchQuery);
?>
vinicius at codemakers dot com dot br 25-Dec-2013 12:17
/*
 Use the "i" option to make searches with Case Insensitive
 Find results beginning with $q
 */

$search = "V";

// Case Sensitive

$where = array('name' => array('$regex' => new MongoRegex("/^$search/")));
$cursor = $collection->find($where);

//Case Insensitive

$where = array('name' => array('$regex' => new MongoRegex("/^$search/i")));
$cursor = $collection->find($where);
benyounes dot ousama at gmail dot com 19-Nov-2010 06:49
First you must declare and define your regexObj
Here I am looking for all entry of my database wich is like "%Nicolas%" and the /i param is used for Insensitive Case
 $regexObj = new MongoRegex("/^Nicolas/i");

<?php
// I attach the regexObj to my Where Condition
 
$where = array("ctname" => $regexObj);

// Execute the request
 
$resultset = $this->db->Infos->find($where);

// Parsing the results
 
while ($resultset->hasNext())
 {
        
$clientObj = $resultset->getNext();
          echo
"Client Name: ".$clientObj["cname"]."</br>";
 }
?>