极奇策RPA技术教程:截取字符串 (NodeStrSlice) - 自动化开发与配置详细指南

截取字符串
📖 节点概述
从字符串中截取指定范围的子字符串。支持起始索引和结束索引,索引可以是正数(从左向右)或负数(从右向左)。结束索引可选,留空时截取到字符串末尾。该节点为纯数据节点,无执行端口。
💡 使用场景:
- 提取文件扩展名:截取最后一个点号之后的部分(配合索引查找)。
- 获取前 N 个字符:用于显示摘要或缩略标题。
- 去除首尾字符:通过起始索引 1 和结束索引 -1 去掉首尾各一个字符。
- 字符串解析:从固定格式的字符串中提取特定位置的字段。
- 文本预处理:截取日志行中的时间戳部分。
🎮 实战连线指南:如何正确使用它?
节点有三个输入端口:文本、起始、结束,输出端口 结果。起始和结束索引遵循 Python 切片规则(包含起始,不包含结束)。
场景案例:提取文件扩展名
- 获取文件名:从【变量获取】节点读取
filename = "document.pdf"。 - 连接节点:将
filename连入【截取字符串】的文本。 - 设置起始索引:由于扩展名在最后一个点之后,可以先获取点号位置(假设为 9),起始填
9。更通用做法是先用【查找子串】定位点号位置。 - 结束索引留空:表示到末尾。
- 获取结果:
结果输出"pdf"。
常见切片示例(字符串 "Hello"):
- 起始
0,结束3→"Hel" - 起始
1,结束4→"ell" - 起始
-3,结束-1→"ll"(从倒数第 3 个到倒数第 1 个之前) - 起始
2,结束留空 →"llo" - 起始
-2,结束留空 →"lo"
⚙️ 引脚与参数说明
📥 输入引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 文本 | STRING | 需要截取的原始字符串。可通过多行文本框填写或连线传入。 |
| 起始 | INT | 截取的起始索引(包含)。支持负数(从末尾倒数)。默认为 0。 |
| 结束 | INT | 截取的结束索引(不包含)。支持负数。留空或无效时表示直到字符串末尾。 |
⚙️ 控件参数
| 控件名称 | 类型 | 说明 |
|---|---|---|
| 文本 | 多行文本框 | 手动输入待截取的文本。当连线传入数据时,连线值优先。 |
| 起始 | 单行文本框 | 手动输入起始索引。默认0。 |
| 结束 | 单行文本框 | 手动输入结束索引。默认0(但实际解析为空时代表末尾)。建议留空或使用 -1、len 等。 |
📤 输出引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 结果 | STRING | 截取后的子字符串。如果索引无效或范围为空,返回空字符串。 |
🔧 切片规则说明
- 索引从 0 开始(第一个字符索引为 0)。
- 负索引表示从末尾倒数:
-1是最后一个字符,-2是倒数第二个,以此类推。 - 截取范围包含起始索引,不包含结束索引(即
[start:end]半开区间)。 - 如果起始索引大于等于字符串长度,或结束索引小于等于起始索引,结果为空字符串。
- 如果起始索引为负数且绝对值超过字符串长度,相当于从 0 开始。
- 如果结束索引为负数且绝对值超过字符串长度,相当于到开头(可能产生空串)。
⚠️ 注意事项
- 索引越界:节点内部使用 Python 切片,会自动处理越界(不会报错,返回有效部分或空字符串)。例如起始 100 时返回空串。
- 结束索引留空:由于输入框必须有一个默认值
0,节点会特殊处理:如果结束索引为0且文本长度不为 0?实际上逻辑是:当结束值解析失败或为 None 时用字符串长度。但如果控件值是0,会传入整数 0,导致截取[start:0]一般返回空串。因此建议用户如果不需要结束索引,不要填 0,而是清空输入框。或者更好的做法:默认控件值设为空字符串,让节点识别。但在当前实现中,结束默认值是0,用户需要手动删除该默认值才能达到“到末尾”的效果。文档需提醒用户。 - 性能:截取操作时间复杂度 O(k)(k 为截取长度),对大字符串高效。
- 多行文本:换行符
\n视为普通字符,索引包含换行符。
💎 小贴士:
- 需要获取字符串的前 10 个字符:起始
0,结束10。- 需要去掉第一个字符:起始
1,结束留空。- 需要去掉最后一个字符:起始
0,结束-1。- 需要提取倒数 3 个字符:起始
-3,结束留空。- 配合【字符串长度】节点,可以根据长度动态计算结束索引。
- 如果经常需要按分隔符截取,【分割字符串】节点可能更合适。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

