- PHP 手册
- 函数参考
- 数据库扩展
- 针对各数据库系统对应的扩展
- Mongo
- Types
MongoRegex 类
(PECL mongo >=0.8.1)
WarningThis extension that defines this class is deprecated. Instead, the MongoDB extension should be used. Alternatives to this class include:
- MongoDB\BSON\Regex
简介
这个类用于创建一个正则表达式。 通常这些表达式用于查询数据库中匹配的字符串。不常用的是,它们可以保存到数据库并用于检索。
正则表达式由四部分组成。 首先 / 作为起始的分隔符,然后是 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 __toString
( void
) : string
}
Table of Contents
- MongoRegex::__construct — 创建一个新的正则表达式
- MongoRegex::__toString — 正则表达式的字符串表达形式
User Contributed Notes 3 notes
up down 3 vinicius at codemakers dot com dot br ¶5 years ago
/*
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);
up
down
2
thusitha555 at gmail dot com ¶4 years ago
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);
?>
up
down
0
benyounes dot ousama at gmail dot com ¶8 years ago
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>";
}
?>
add a note
官方地址:https://www.php.net/manual/en/class.mongoregex.php