适用范围: NoSQL
此函数提供正则表达式功能。 正则表达式是简明而灵活的表示法,用于找到文本的模式。
语法
RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])  
参数
| 说明 | |
|---|---|
string_expr_1 | 
要搜索的字符串表达式。 | 
string_expr_2 | 
一个字符串表达式,其中包含定义为在搜索 string_expr_1 时使用的正则表达式。 | 
string_expr_3(可选) | 
一个可选字符串表达式,其中包含要用于正则表达式(string_expr_2)的所选修饰符。 如果未提供,则默认运行不带修饰符的正则表达式匹配。 | 
注意
为 string_expr_3 提供空字符串在功能上等效于省略参数。
返回类型
返回一个布尔表达式。
示例
以下示例说明了使用几个不同修饰符的正则表达式匹配。
SELECT VALUE {
    noModifiers: RegexMatch("abcd", "ABC"), 
    caseInsensitive: RegexMatch("abcd", "ABC", "i"), 
    wildcardCharacter: RegexMatch("abcd", "ab.", ""),
    ignoreWhiteSpace: RegexMatch("abcd", "ab c", "x"), 
    caseInsensitiveAndIgnoreWhiteSpace: RegexMatch("abcd", "aB c", "ix"),
    containNumberBetweenZeroAndNine: RegexMatch("03a", "[0-9]"),
    containPrefix: RegexMatch("salt3824908", "salt{1}"),
    containsFiveLetterWordStartingWithS: RegexMatch("shame", "s....", "i")
}
[
  {
    "noModifiers": false,
    "caseInsensitive": true,
    "wildcardCharacter": true,
    "ignoreWhiteSpace": true,
    "caseInsensitiveAndIgnoreWhiteSpace": true,
    "containNumberBetweenZeroAndNine": true,
    "containPrefix": true,
    "containsFiveLetterWordStartingWithS": true
  }
]
下一个示例假定你有一个容器,其中带有包含 name 字段的项。
[
  {
    "name": "Tecozow coat",
    "category": "winter-coats"
  },
  {
    "name": "Bladnick coat",
    "category": "winter-coats"
  },
  {
    "name": "Anidin heavy jacket",
    "category": "winter-coats"
  }
]
此示例使用正则表达式匹配作为筛选器来返回项的子集。
SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.category = "winter-coats" AND    
    RegexMatch(p.name, " coat{1}")
[
  "Tecozow coat",
  "Bladnick coat"
]
注解
- 只有当正则表达式可以被分解成 
StartsWith、EndsWith、Contains或StringEquals等效系统函数时,此函数才会受益于范围索引。 - 如果要搜索的字符串表达式(
string_expr_1)、正则表达式(string_expr_2)或所选修饰符(string_expr_3)无效,则返回undefined。 - 此函数支持以下四个修饰符:| |格式|说明| | --- | --- | --- | | 多行 | 
m|将要搜索的字符串表达式视为多行。 如果没有此选项,字符^和$将在字符串的开头或结尾匹配,而不是在每一行匹配。 | | 匹配任何字符串 |s|允许使用“.”来匹配任何字符,包括换行符。 | | 忽略大小写 |i|模式匹配时忽略大小写。 | | 忽略空格 |x|忽略所有空格字符。 | - 如果希望在正则表达式中使用元字符,并且不希望它具有特殊的含义,则应使用 
\对该元字符进行转义。