RegexMatch (consulta NoSQL)
APLICA-SE A: NoSQL
Essa função fornece recursos de expressão regular. As expressões regulares são uma notação concisa e flexível para localização de padrões de texto.
Observação
Azure Cosmos DB for NoSQL usa expressões regulares compatíveis com PERL (PCRE).
Sintaxe
RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])
Argumentos
Descrição | |
---|---|
string_expr_1 |
Uma expressão de cadeia de caracteres a ser pesquisada. |
string_expr_2 |
Uma expressão de cadeia de caracteres com uma expressão regular definida para usar ao pesquisar string_expr_1 . |
string_expr_3 (Opcional) |
Uma expressão de cadeia de caracteres opcional com os modificadores selecionados a serem usados com a expressão regular (string_expr_2 ). Se não for fornecido, o padrão será executar a correspondência de expressão regular sem modificadores. |
Observação
Fornecer uma cadeia de caracteres vazia para string_expr_3
é funcionalmente equivalente a omitir o argumento.
Tipos de retorno
Retorna uma expressão booliana.
Exemplos
O exemplo a seguir ilustra correspondências de expressões regulares usando alguns modificadores diferentes.
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
}
]
O próximo exemplo pressupõe que você tenha um contêiner com itens, incluindo um campo name
.
[
{
"name": "Tecozow coat",
"category": "winter-coats"
},
{
"name": "Bladnick coat",
"category": "winter-coats"
},
{
"name": "Anidin heavy jacket",
"category": "winter-coats"
}
]
Este exemplo usa uma correspondência de expressão regular como um filtro para retornar um subconjunto de itens.
SELECT VALUE
p.name
FROM
products p
WHERE
p.category = "winter-coats" AND
RegexMatch(p.name, " coat{1}")
[
"Tecozow coat",
"Bladnick coat"
]
Comentários
- Essa função se beneficia de um índice de intervalo somente se a expressão regular puder ser dividida em
StartsWith
,EndsWith
,Contains
ouStringEquals
funções do sistema equivalentes. - Retorna
undefined
se a expressão de cadeia de caracteres a ser pesquisada (string_expr_1
), a expressão regular (string_expr_2
) ou os modificadores selecionados (string_expr_3
) são inválidos. - Essa função dá suporte aos quatro modificadores a seguir: || | Formato | Descrição | | --- | --- | --- | | Várias Linhas |
m
| Trate a expressão de cadeia de caracteres a ser pesquisada como várias linhas. Sem essa opção, os caracteres^
e$
corresponderão no início ou no final da cadeia de caracteres e não em cada linha individual. | | Corresponder a qualquer cadeia de caracteres |s
| Permitir que "." corresponda a qualquer caractere, incluindo um caractere de nova linha. | | Ignorar maiúsculas e minúsculas |i
| Ignorar letras maiúsculas e minúsculas quando houver correspondência de padrões. | | Ignorar espaço em branco |x
| Ignorar todos os caracteres de espaço em branco. | - Se você quiser usar um metacaractere em uma expressão regular e não quiser que ele tenha um significado especial, você deverá escapar do metacaractere usando
\
.