Operator Reference

tuple_regexp_selecttuple_regexp_selectTupleRegexpSelectTupleRegexpSelecttuple_regexp_select (Operator)

tuple_regexp_selecttuple_regexp_selectTupleRegexpSelectTupleRegexpSelecttuple_regexp_select — Select tuple elements matching a regular expression.

Signature

tuple_regexp_select( : : Data, Expression : Selection)

Herror tuple_regexp_select(const char* Data, const char* Expression, char* Selection)

Herror T_tuple_regexp_select(const Htuple Data, const Htuple Expression, Htuple* Selection)

void TupleRegexpSelect(const HTuple& Data, const HTuple& Expression, HTuple* Selection)

HTuple HTuple::TupleRegexpSelect(const HTuple& Expression) const

static void HOperatorSet.TupleRegexpSelect(HTuple data, HTuple expression, out HTuple selection)

HTuple HTuple.TupleRegexpSelect(HTuple expression)

def tuple_regexp_select(data: MaybeSequence[str], expression: MaybeSequence[str]) -> Sequence[str]

def tuple_regexp_select_s(data: MaybeSequence[str], expression: MaybeSequence[str]) -> str

Description

tuple_regexp_selecttuple_regexp_selectTupleRegexpSelectTupleRegexpSelecttuple_regexp_select applies the regular expression in ExpressionExpressionExpressionexpressionexpression to one or more input strings in DataDataDatadatadata, and returns the matching string elements in SelectionSelectionSelectionselectionselection. This is convenient, e.g., for filtering a list of files obtained using the operator list_fileslist_filesListFilesListFileslist_files.

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

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

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

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")set_system("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_selecttuple_regexp_selectTupleRegexpSelectTupleRegexpSelecttuple_regexp_select, which can be used in an expression in the following syntax:

Selection := regexp_select(Data, Expression)

Execution Information

  • Multithreading type: independent (runs in parallel even with exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Processed without parallelization.

Parameters

DataDataDatadatadata (input_control)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Input strings to match.

ExpressionExpressionExpressionexpressionexpression (input_control)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Regular expression.

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

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"

SelectionSelectionSelectionselectionselection (output_control)  string(-array) HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Matching strings

Example (HDevelop)

tuple_regexp_select (['.','..','mydir','a.png','b.txt','c.bmp','d.dat'], \
                     '.(bmp|png)', Result)
* Returns ['a.png','c.bmp']

tuple_regexp_select (Files, ['training','invert_match'], Matches)
* Returns all file names that do *not* contain the string 'training'

Alternatives

tuple_selecttuple_selectTupleSelectTupleSelecttuple_select

See also

tuple_regexp_matchtuple_regexp_matchTupleRegexpMatchTupleRegexpMatchtuple_regexp_match, tuple_regexp_replacetuple_regexp_replaceTupleRegexpReplaceTupleRegexpReplacetuple_regexp_replace, tuple_regexp_testtuple_regexp_testTupleRegexpTestTupleRegexpTesttuple_regexp_test

Module

Foundation