正则表达式搜索mongo数据库的电子邮件

时间:2016-01-13 00:52:34

标签: php regex mongodb

我对正则表达式不太好,但是我需要一个正则表达式来在php中进行mongo搜索,以获取这样的字符串中的电子邮件:

[to]=>'jfields@example.com, lknight@example.com, sbeltran@example.com, ltran@example.com'

我的具体问题是我无法使用表达式专门查找ltran@example.com而不是sbeltran@example.com
我使用了类似['$regex'] = new MongoRegex("/(\W)(".$email.")/");之类的东西,但是后来找不到jfields@example.com,因为它前面没有空格。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

使用word boundary

$email_quoted = preg_quote($email, '#');
$regex = "#\b$email_quoted\b#";

有三种不同的职位符合词边界:

  1. 在字符串中的第一个字符之前,如果第一个字符是单词字符。
  2. 在字符串中的最后一个字符之后,如果最后一个字符是单词字符。
  3. 字符串中的两个字符之间,其中一个是单词字符,另一个不是单词字符。