mirror of https://gitee.com/bigwinds/arangodb
renamed REGEX to REGEX_MATCH
This commit is contained in:
parent
96061c18ba
commit
1cda48bfc2
|
@ -267,9 +267,9 @@ RANDOM_TOKEN(8) // "zGl09z42"
|
|||
RANDOM_TOKEN(8) // "m9w50Ft9"
|
||||
```
|
||||
|
||||
!SUBSECTION REGEX()
|
||||
!SUBSECTION REGEX_MATCH()
|
||||
|
||||
`REGEX(text, search, caseInsensitive) → bool`
|
||||
`REGEX_MATCH(text, search, caseInsensitive) → bool`
|
||||
|
||||
Check whether the pattern *search* is contained in the string *text*,
|
||||
using regular expression matching.
|
||||
|
@ -327,9 +327,9 @@ If the regular expression in *search* is invalid, a warning will be raised
|
|||
and the function will return *false*.
|
||||
|
||||
```js
|
||||
REGEX("the quick brown fox", "the.*fox") // true
|
||||
REGEX("the quick brown fox", "^(a|the)\s+(quick|slow).*f.x$") // true
|
||||
REGEX("the\nquick\nbrown\nfox", "^the(\n[a-w]+)+\nfox$") // true
|
||||
REGEX_MATCH("the quick brown fox", "the.*fox") // true
|
||||
REGEX_MATCH("the quick brown fox", "^(a|the)\s+(quick|slow).*f.x$") // true
|
||||
REGEX_MATCH("the\nquick\nbrown\nfox", "^the(\n[a-w]+)+\nfox$") // true
|
||||
```
|
||||
|
||||
!SUBSECTION REVERSE()
|
||||
|
|
|
@ -177,8 +177,8 @@ struct FunctionDefiner {
|
|||
false, true, true, &Functions::Contains});
|
||||
add({"LIKE", "AQL_LIKE", "s,r|b", true, true, false, true,
|
||||
true, &Functions::Like});
|
||||
add({"REGEX", "AQL_REGEX", "s,r|b", true, true, false, true,
|
||||
true, &Functions::Regex});
|
||||
add({"REGEX_MATCH", "AQL_REGEX_MATCH", "s,r|b", true, true, false, true,
|
||||
true, &Functions::RegexMatch});
|
||||
add({"LEFT", "AQL_LEFT", "s,n", true, true, false, true, true});
|
||||
add({"RIGHT", "AQL_RIGHT", "s,n", true, true, false, true, true});
|
||||
add({"TRIM", "AQL_TRIM", "s|ns", true, true, false, true, true});
|
||||
|
|
|
@ -1419,11 +1419,11 @@ AqlValue Functions::Like(arangodb::aql::Query* query,
|
|||
return AqlValue(result);
|
||||
}
|
||||
|
||||
/// @brief function REGEX
|
||||
AqlValue Functions::Regex(arangodb::aql::Query* query,
|
||||
arangodb::AqlTransaction* trx,
|
||||
VPackFunctionParameters const& parameters) {
|
||||
ValidateParameters(parameters, "REGEX", 2, 3);
|
||||
/// @brief function REGEX_MATCH
|
||||
AqlValue Functions::RegexMatch(arangodb::aql::Query* query,
|
||||
arangodb::AqlTransaction* trx,
|
||||
VPackFunctionParameters const& parameters) {
|
||||
ValidateParameters(parameters, "REGEX_MATCH", 2, 3);
|
||||
bool const caseInsensitive = GetBooleanParameter(trx, parameters, 2, false);
|
||||
StringBufferLeaser buffer(trx);
|
||||
arangodb::basics::VPackStringBufferAdapter adapter(buffer->stringBuffer());
|
||||
|
@ -1464,7 +1464,7 @@ AqlValue Functions::Regex(arangodb::aql::Query* query,
|
|||
|
||||
if (matcher == nullptr) {
|
||||
// compiling regular expression failed
|
||||
RegisterWarning(query, "REGEX", TRI_ERROR_QUERY_INVALID_REGEX);
|
||||
RegisterWarning(query, "REGEX_MATCH", TRI_ERROR_QUERY_INVALID_REGEX);
|
||||
return AqlValue(arangodb::basics::VelocyPackHelper::NullValue());
|
||||
}
|
||||
|
||||
|
@ -1479,7 +1479,7 @@ AqlValue Functions::Regex(arangodb::aql::Query* query,
|
|||
|
||||
if (error) {
|
||||
// compiling regular expression failed
|
||||
RegisterWarning(query, "REGEX", TRI_ERROR_QUERY_INVALID_REGEX);
|
||||
RegisterWarning(query, "REGEX_MATCH", TRI_ERROR_QUERY_INVALID_REGEX);
|
||||
return AqlValue(arangodb::basics::VelocyPackHelper::NullValue());
|
||||
}
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@ struct Functions {
|
|||
VPackFunctionParameters const&);
|
||||
static AqlValue Like(arangodb::aql::Query*, arangodb::AqlTransaction*,
|
||||
VPackFunctionParameters const&);
|
||||
static AqlValue Regex(arangodb::aql::Query*, arangodb::AqlTransaction*,
|
||||
static AqlValue RegexMatch(arangodb::aql::Query*, arangodb::AqlTransaction*,
|
||||
VPackFunctionParameters const&);
|
||||
static AqlValue Passthru(arangodb::aql::Query*, arangodb::AqlTransaction*,
|
||||
VPackFunctionParameters const&);
|
||||
|
|
|
@ -2301,7 +2301,7 @@ function AQL_LIKE (value, regex, caseInsensitive) {
|
|||
/// @brief searches a substring in a string, using a regex
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function AQL_REGEX (value, regex, caseInsensitive) {
|
||||
function AQL_REGEX_MATCH (value, regex, caseInsensitive) {
|
||||
'use strict';
|
||||
|
||||
var modifiers = '';
|
||||
|
@ -8358,7 +8358,7 @@ exports.AQL_UPPER = AQL_UPPER;
|
|||
exports.AQL_SUBSTRING = AQL_SUBSTRING;
|
||||
exports.AQL_CONTAINS = AQL_CONTAINS;
|
||||
exports.AQL_LIKE = AQL_LIKE;
|
||||
exports.AQL_REGEX = AQL_REGEX;
|
||||
exports.AQL_REGEX_MATCH = AQL_REGEX_MATCH;
|
||||
exports.AQL_LEFT = AQL_LEFT;
|
||||
exports.AQL_RIGHT = AQL_RIGHT;
|
||||
exports.AQL_TRIM = AQL_TRIM;
|
||||
|
|
|
@ -62,18 +62,18 @@ function ahuacatlStringFunctionsTestSuite () {
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRegexInvalid : function () {
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN REGEX()");
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN REGEX(\"test\")");
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN REGEX(\"test\", \"meow\", \"foo\", \"bar\")");
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN REGEX_MATCH()");
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN REGEX_MATCH(\"test\")");
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN REGEX_MATCH(\"test\", \"meow\", \"foo\", \"bar\")");
|
||||
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX(\"test\", \"[\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX(\"test\", \"[^\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX(\"test\", \"a.(\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX(\"test\", \"(a\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX(\"test\", \"(a]\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX(\"test\", \"**\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX(\"test\", \"?\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX(\"test\", \"*\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX_MATCH(\"test\", \"[\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX_MATCH(\"test\", \"[^\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX_MATCH(\"test\", \"a.(\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX_MATCH(\"test\", \"(a\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX_MATCH(\"test\", \"(a]\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX_MATCH(\"test\", \"**\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX_MATCH(\"test\", \"?\")");
|
||||
assertQueryWarningAndFalse(errors.ERROR_QUERY_INVALID_REGEX.code, "RETURN REGEX_MATCH(\"test\", \"*\")");
|
||||
},
|
||||
|
||||
testRegex : function () {
|
||||
|
@ -217,13 +217,13 @@ function ahuacatlStringFunctionsTestSuite () {
|
|||
];
|
||||
|
||||
values.forEach(function(v) {
|
||||
var query = "RETURN REGEX(@what, @re)";
|
||||
var query = "RETURN REGEX_MATCH(@what, @re)";
|
||||
assertEqual(v[2], getQueryResults(query, { what: v[0], re: v[1] })[0], v);
|
||||
|
||||
query = "RETURN NOOPT(REGEX(@what, @re))";
|
||||
query = "RETURN NOOPT(REGEX_MATCH(@what, @re))";
|
||||
assertEqual(v[2], getQueryResults(query, { what: v[0], re: v[1] })[0], v);
|
||||
|
||||
query = "RETURN NOOPT(V8(REGEX(@what, @re)))";
|
||||
query = "RETURN NOOPT(V8(REGEX_MATCH(@what, @re)))";
|
||||
assertEqual(v[2], getQueryResults(query, { what: v[0], re: v[1] })[0], v);
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue