tuple_regexp_replacetuple_regexp_replaceTupleRegexpReplaceTupleRegexpReplacetuple_regexp_replace (Operator)
Name
tuple_regexp_replacetuple_regexp_replaceTupleRegexpReplaceTupleRegexpReplacetuple_regexp_replace
— Replace a substring using regular expressions.
Signature
def tuple_regexp_replace(data: MaybeSequence[str], expression: MaybeSequence[str], replace: str) -> Sequence[str]
def tuple_regexp_replace_s(data: MaybeSequence[str], expression: MaybeSequence[str], replace: str) -> str
Description
tuple_regexp_replacetuple_regexp_replaceTupleRegexpReplaceTupleRegexpReplacetuple_regexp_replace
applies the regular expression in
ExpressionExpressionExpressionexpressionexpression
to one or more input strings in DataDataDatadatadata
,
and replaces the first matching substring using the ReplaceReplaceReplacereplacereplace
expression. For each input string, a processed output string is
returned in ResultResultResultresultresult
.
Please refer to the documentation of tuple_regexp_matchtuple_regexp_matchTupleRegexpMatchTupleRegexpMatchtuple_regexp_match
for syntax
and options of regular expressions. Additionally, tuple_regexp_replacetuple_regexp_replaceTupleRegexpReplaceTupleRegexpReplacetuple_regexp_replace
supports the option 'replace_all'"replace_all""replace_all""replace_all""replace_all", which causes all matches
within each individual string to be replaced.
The ReplaceReplaceReplacereplacereplace
expression may use the tag '$0'"$0""$0""$0""$0" to refer to the
matched substring in the input data, '$i'"$i""$i""$i""$i" to refer to the submatch of
the i-th capturing group (for i <= 9), and '$$'"$$""$$""$$""$$" to
refer to the '$'"$""$""$""$" literal.
For general information about string operations see
Tuple / String Operations.
If DataDataDatadatadata
is an empty tuple, the operator returns an empty tuple. If
ReplaceReplaceReplacereplacereplace
is an empty tuple and DataDataDatadatadata
is not empty, an
exception is raised.
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_replacetuple_regexp_replaceTupleRegexpReplaceTupleRegexpReplacetuple_regexp_replace
,
which can be used in an expression in the following syntax:
Result := regexp_replace(Data, Expression, Replace)
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 process.
ExpressionExpressionExpressionexpressionexpression
(input_control) string(-array) →
HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Regular expression.
Default:
'.*'
".*"
".*"
".*"
".*"
Suggested values:
'.*'".*"".*"".*"".*", 'replace_all'"replace_all""replace_all""replace_all""replace_all", '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"
ReplaceReplaceReplacereplacereplace
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Replacement expression.
ResultResultResultresultresult
(output_control) string(-array) →
HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Processed strings.
Example (HDevelop)
tuple_regexp_replace(['img10.bmp','img11.bmp','img12.bmp'], \
'img(.*).bmp', 'out$1.txt', Result)
* Returns ['out10.txt','out11.txt','out12.txt']
See also
tuple_regexp_matchtuple_regexp_matchTupleRegexpMatchTupleRegexpMatchtuple_regexp_match
,
tuple_regexp_testtuple_regexp_testTupleRegexpTestTupleRegexpTesttuple_regexp_test
,
tuple_regexp_selecttuple_regexp_selectTupleRegexpSelectTupleRegexpSelecttuple_regexp_select
Module
Foundation