tuple_regexp_testtuple_regexp_testTupleRegexpTestTupleRegexpTest (Operator)

Name

tuple_regexp_testtuple_regexp_testTupleRegexpTestTupleRegexpTest — Test if a string matches a regular expression.

Signature

tuple_regexp_test( : : Data, Expression : NumMatches)

Herror tuple_regexp_test(const char* Data, const char* Expression, Hlong* NumMatches)

Herror T_tuple_regexp_test(const Htuple Data, const Htuple Expression, Htuple* NumMatches)

void TupleRegexpTest(const HTuple& Data, const HTuple& Expression, HTuple* NumMatches)

HTuple HTuple::TupleRegexpTest(const HTuple& Expression) const

static void HOperatorSet.TupleRegexpTest(HTuple data, HTuple expression, out HTuple numMatches)

HTuple HTuple.TupleRegexpTest(HTuple expression)

Description

tuple_regexp_testtuple_regexp_testTupleRegexpTestTupleRegexpTestTupleRegexpTest applies the regular expression in ExpressionExpressionExpressionExpressionexpression to one or more input strings in DataDataDataDatadata, and returns the number of matching strings in NumMatchesNumMatchesNumMatchesNumMatchesnumMatches. In particular, the result for a single input string will be 1 in case of a match, and 0 otherwise.

Please refer to the documentation of tuple_regexp_matchtuple_regexp_matchTupleRegexpMatchTupleRegexpMatchTupleRegexpMatch for syntax and options of regular expressions. Additionally, tuple_regexp_testtuple_regexp_testTupleRegexpTestTupleRegexpTestTupleRegexpTest supports the option 'invert_match'"invert_match""invert_match""invert_match""invert_match", which causes those input strings to be counted which do not match the regular expression.

For convenient use in conditional expressions, this functionality is also available as the '=~'"=~""=~""=~""=~" operation in HDevelop.

For general information about string operations see Tuple / String Operations.

If the input tuple is empty, the operator returns 0.

Unicode code points versus bytes

Regular expression matching operates on Unicode code points. One Unicode code point may be composed of multiple bytes in the UTF-8 string. If regular expression matching should only match on bytes, this operator can be switched to byte mode with set_system('tsp_tuple_string_operator_mode', 'byte')set_system("tsp_tuple_string_operator_mode", "byte")SetSystem("tsp_tuple_string_operator_mode", "byte")SetSystem("tsp_tuple_string_operator_mode", "byte")SetSystem("tsp_tuple_string_operator_mode", "byte"). If 'filename_encoding'"filename_encoding""filename_encoding""filename_encoding""filename_encoding" is set to 'locale'"locale""locale""locale""locale" (legacy), this operator always uses the byte mode.

HDevelop In-line Operation

HDevelop provides an in-line operation for tuple_regexp_testtuple_regexp_testTupleRegexpTestTupleRegexpTestTupleRegexpTest, which can be used in an expression in the following syntax:

NumMatches := regexp_test(Data, Expression) or NumMatches := Data =~ Expression

Execution Information

Parameters

DataDataDataDatadata (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Input strings to match.

ExpressionExpressionExpressionExpressionexpression (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Regular expression.

Default value: '.*' ".*" ".*" ".*" ".*"

Suggested values: '.*'".*"".*"".*"".*", 'invert_match'"invert_match""invert_match""invert_match""invert_match", 'ignore_case'"ignore_case""ignore_case""ignore_case""ignore_case", 'multiline'"multiline""multiline""multiline""multiline", 'dot_matches_all'"dot_matches_all""dot_matches_all""dot_matches_all""dot_matches_all", 'newline_lf'"newline_lf""newline_lf""newline_lf""newline_lf", 'newline_crlf'"newline_crlf""newline_crlf""newline_crlf""newline_crlf", 'newline_cr'"newline_cr""newline_cr""newline_cr""newline_cr"

NumMatchesNumMatchesNumMatchesNumMatchesnumMatches (output_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Number of matching strings

Example (HDevelop)

tuple_regexp_test ('p10662599755', '[A-Z]*', Result)
* Returns 0

tuple_regexp_test ('p10662599755', ['[A-Z]*','ignore_case'], Result)
* Returns 1

Alternatives

tuple_strstrtuple_strstrTupleStrstrTupleStrstrTupleStrstr

See also

tuple_regexp_matchtuple_regexp_matchTupleRegexpMatchTupleRegexpMatchTupleRegexpMatch, tuple_regexp_replacetuple_regexp_replaceTupleRegexpReplaceTupleRegexpReplaceTupleRegexpReplace, tuple_regexp_selecttuple_regexp_selectTupleRegexpSelectTupleRegexpSelectTupleRegexpSelect

Module

Foundation