String Operations
算子列表 ↓
本章包含字符串操作的算子。
一般信息
HALCON 库默认使用 UTF-8 编码字符串。
UTF-8 是一种 Unicode 字符编码方案,能够使用 1 至 4 个字节编码所有 Unicode 码点。“Unicode”指的是将字符串中每个字符映射到特定码点的字符集(例如字符“A”对应“U+0041”)。UTF-8 则将 Unicode 码点转换为二进制数据。所有 ASCII 字符通常只需 1 字节存储空间。某些特殊字符(如德语变音符、希腊字母及西里尔字母)需占用 2 字节。亚洲字符则可能达到每个字符 4 字节。
默认情况下,HALCON 字符串运算符基于 Unicode 码点进行操作。这意味着访问字符串中的字符时,始终返回该字符对应的 Unicode 码点,而不会考虑 UTF-8 编码中表示该码点所需的字节数。因此,多字节字符(如亚洲字符或德语变音符)可在所有系统上实现统一转换。请注意,Unicode 标准还允许通过组合多个码点(使用所谓的“组合音标符号”)来拼接可打印字符。目前 HALCON 对此功能支持不完全:在 HALCON 中,码点会被单独处理,当比较字符串时,即使字符含义相同,若其编码码点不同则不会被视为相等。
若在运行旧版程序时出现兼容性问题,可将 HALCON 库的字符串编码从 'utf8'"utf8""utf8""utf8""utf8""utf8" 切换至
'locale'"locale""locale""locale""locale""locale"(传统模式)。此时字符串将根据区域设置存储,且字符串算子将遵循 HALCON 早期版本的处理方式——按字节而非按字符进行操作。若在 UTF-8 模式下仍需字节级字符处理,可使用
set_systemset_systemSetSystemSetSystemSetSystemset_system 算子将 'tuple_string_operator_mode'"tuple_string_operator_mode""tuple_string_operator_mode""tuple_string_operator_mode""tuple_string_operator_mode""tuple_string_operator_mode" 选项从 'codepoint'"codepoint""codepoint""codepoint""codepoint""codepoint" 切换至 'byte'"byte""byte""byte""byte""byte"。此后字符串算子将不再基于码点进行处理。例如在调试过程中,字符串的字节序列信息可能具有参考价值。
算子列表
tuple_environmentTupleEnvironmenttuple_environmentTupleEnvironmenttuple_environment元组环境
- 读取一个或多个环境变量。
tuple_joinTupleJointuple_joinTupleJointuple_join元组连接
- 使用分隔符连接字符串。
tuple_regexp_matchTupleRegexpMatchtuple_regexp_matchTupleRegexpMatchtuple_regexp_match元组正则表达式匹配
- 使用正则表达式提取子字符串。
tuple_regexp_replaceTupleRegexpReplacetuple_regexp_replaceTupleRegexpReplacetuple_regexp_replace元组正则表达式替换
- 使用正则表达式替换子字符串。
tuple_regexp_selectTupleRegexpSelecttuple_regexp_selectTupleRegexpSelecttuple_regexp_select元组正则表达式选择
- 选择与正则表达式匹配的元组元素。
tuple_regexp_testTupleRegexpTesttuple_regexp_testTupleRegexpTesttuple_regexp_test元组正则表达式测试
- 测试字符串是否与正则表达式匹配。
tuple_splitTupleSplittuple_splitTupleSplittuple_split元组拆分
- 使用预定义的分隔符将字符串拆分为子字符串。
tuple_str_first_nTupleStrFirstNtuple_str_first_nTupleStrFirstNtuple_str_first_n元组字符串第一个N
- 将第一个字符剪切到字符串元组中的 “n” 位置。
tuple_str_last_nTupleStrLastNtuple_str_last_nTupleStrLastNtuple_str_last_n元组字符串最后N
- 从字符串元组中删除从位置 “n” 开始的所有字符。
tuple_strchrTupleStrchrtuple_strchrTupleStrchrtuple_strchr元组字符串字符
- 正向搜索字符串元组中的字符。
tuple_strlenTupleStrlentuple_strlenTupleStrlentuple_strlen元组字符串长度
- 确定字符串元组中每个字符串的长度。
tuple_strrchrTupleStrrchrtuple_strrchrTupleStrrchrtuple_strrchr元组字符串向后字符
- 向后搜索字符串元组中的字符。
tuple_strrstrTupleStrrstrtuple_strrstrTupleStrrstrtuple_strrstr元组字符串向后字符串
- 在字符串元组中向后搜索字符串。
tuple_strstrTupleStrstrtuple_strstrTupleStrstrtuple_strstr元组字符串字符串
- 在字符串元组中向前搜索字符串。
tuple_substrTupleSubstrtuple_substrTupleSubstrtuple_substr元组子字符串
- 从字符串元组中从位置 “n1” 到 “n2” 剪切字符。