tuple_substrtuple_substrTupleSubstrTupleSubstrtuple_substr (算子)

名称

tuple_substrtuple_substrTupleSubstrTupleSubstrtuple_substr — 从字符串元组中从位置 “n1” 到 “n2” 剪切字符。

签名

tuple_substr( : : String, Position1, Position2 : Substring)

Herror tuple_substr(const char* String, const Hlong Position1, const Hlong Position2, char* Substring)

Herror T_tuple_substr(const Htuple String, const Htuple Position1, const Htuple Position2, Htuple* Substring)

void TupleSubstr(const HTuple& String, const HTuple& Position1, const HTuple& Position2, HTuple* Substring)

HTuple HTuple::TupleSubstr(const HTuple& Position1, const HTuple& Position2) const

static void HOperatorSet.TupleSubstr(HTuple stringVal, HTuple position1, HTuple position2, out HTuple substring)

HTuple HTuple.TupleSubstr(HTuple position1, HTuple position2)

def tuple_substr(string: MaybeSequence[str], position_1: MaybeSequence[Union[float, int]], position_2: MaybeSequence[Union[float, int]]) -> Sequence[str]

def tuple_substr_s(string: MaybeSequence[str], position_1: MaybeSequence[Union[float, int]], position_2: MaybeSequence[Union[float, int]]) -> str

描述

tuple_substrtuple_substrTupleSubstrTupleSubstrTupleSubstrtuple_substr cuts all characters from position “n1” through “n2” out of each string of the input tuple StringStringStringStringstringValstring and returns them as new strings in the output tuple SubstringSubstringSubstringSubstringsubstringsubstring. The positions “n1” and “n2” are determined by the second and third input tuples Position1Position1Position1Position1position1position_1 and Position2Position2Position2Position2position2position_2. Their length has to be equal. If Position1Position1Position1Position1position1position_1 and Position2Position2Position2Position2position2position_2 only contain one element, this element defines for all strings of StringStringStringStringstringValstring “n1” and “n2”, respectively . If StringStringStringStringstringValstring, Position1Position1Position1Position1position1position_1 and Position2Position2Position2Position2position2position_2 have got the same number of elements, the first elements of Position1Position1Position1Position1position1position_1 and Position2Position2Position2Position2position2position_2 determine the start and end position for the first string of StringStringStringStringstringValstring. The second elements of Position1Position1Position1Position1position1position_1 and Position2Position2Position2Position2position2position_2 do so for the second string of StringStringStringStringstringValstring and so on. If Position1Position1Position1Position1position1position_1 and Position2Position2Position2Position2position2position_2 contain more than one element and StringStringStringStringstringValstring contains only one string, tuple_substrtuple_substrTupleSubstrTupleSubstrTupleSubstrtuple_substr cuts more than one substring out of this string. The elements of Position1Position1Position1Position1position1position_1 and Position2Position2Position2Position2position2position_2 then determine the start and end positions for these substrings. If all input tuples contain more than one element but differ in the number of elements, tuple_substrtuple_substrTupleSubstrTupleSubstrTupleSubstrtuple_substr returns an error.

If StringStringStringStringstringValstring is an empty tuple, the operator returns an empty tuple. If StringStringStringStringstringValstring is not empty and Position1Position1Position1Position1position1position_1 and/or Position2Position2Position2Position2position2position_2 are empty tuples, an exception is raised.

Unicode 码点与字节

The positions reference Unicode code points. One Unicode code point may be composed of multiple bytes in the UTF-8 string. If the positions should reference the raw bytes of the string, 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")set_system("tsp_tuple_string_operator_mode","byte"). If 'filename_encoding'"filename_encoding""filename_encoding""filename_encoding""filename_encoding""filename_encoding" is set to 'locale'"locale""locale""locale""locale""locale" (legacy), this operator always uses the byte mode.

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

HDevelop 内联操作

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

Substring := String{Position1:Position2}

执行信息

参数

StringStringStringStringstringValstring (输入控制)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Input tuple with string(s) to examine.

Position1Position1Position1Position1position1position_1 (输入控制)  number(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Input tuple with start position(s) “n1”.

Position2Position2Position2Position2position2position_2 (输入控制)  number(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Input tuple with end position(s) “n2”.

SubstringSubstringSubstringSubstringsubstringsubstring (输出控制)  string(-array) HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Characters of the string(s) from position “n1” to “n2”.

替代

tuple_str_first_ntuple_str_first_nTupleStrFirstNTupleStrFirstNTupleStrFirstNtuple_str_first_n, tuple_str_last_ntuple_str_last_nTupleStrLastNTupleStrLastNTupleStrLastNtuple_str_last_n, tuple_strstrtuple_strstrTupleStrstrTupleStrstrTupleStrstrtuple_strstr, tuple_strrstrtuple_strrstrTupleStrrstrTupleStrrstrTupleStrrstrtuple_strrstr, tuple_strlentuple_strlenTupleStrlenTupleStrlenTupleStrlentuple_strlen, tuple_strchrtuple_strchrTupleStrchrTupleStrchrTupleStrchrtuple_strchr, tuple_strrchrtuple_strrchrTupleStrrchrTupleStrrchrTupleStrrchrtuple_strrchr, tuple_splittuple_splitTupleSplitTupleSplitTupleSplittuple_split, tuple_environmenttuple_environmentTupleEnvironmentTupleEnvironmentTupleEnvironmenttuple_environment

模块

基础