在线提交需求

请留下您的联系方式,我们的专家将在 24 小时内与您沟通。

极奇策RPA技术教程:查找字符串位置 (NodeFindSubstring) - 自动化开发与配置详细指南

极奇策技术团队更新于 2026-08-260 阅读

image.png

查找字符串位置

📖 节点概述

在指定文本中查找目标子串第一次出现的位置(索引)。支持从正向查找(默认)或反向查找(从末尾向开头)。可选的忽略大小写模式。返回值为子串首字符的索引(从 0 开始),若未找到则返回 -1。该节点为纯数据节点,无执行端口。

💡 使用场景

  • 提取特定字符后的内容:找到分隔符位置,再配合截取节点获取后面的部分。
  • 判断字符串中是否包含子串:检查返回值是否 ≥0(也可用“是否包含字符串”节点)。
  • 文件路径解析:查找最后一个 /\ 的位置,分离目录和文件名。
  • 日志分析:定位日志行中时间戳或错误码的起始位置。
  • 文本解析:在固定格式文本中查找关键字的偏移量。

🎮 实战连线指南:如何正确使用它?

节点有两个输入端口:原文本(被搜索的内容)和 目标子串(要查找的字符串),以及两个高级选项。输出端口 位置索引 为整数。

场景案例:获取邮箱中 @ 符号的位置

  1. 获取邮箱地址:从【变量获取】节点读取 email = "user@example.com"
  2. 连接节点
    • 原文本 端口连接邮箱字符串。
    • 目标子串 端口输入或连接 "@"
  3. 获取位置位置索引 输出 4(字符索引从 0 开始,'u'=0, 's'=1, 'e'=2, 'r'=3, '@'=4)。
  4. 后续使用:配合【截取字符串】节点,从位置+1 开始截取域名部分。

反向查找示例:获取文件路径中最后一个斜杠的位置

  • 原文本:"/home/user/docs/report.txt"
  • 目标子串:"/"
  • 勾选 从末尾开始找
  • 结果:最后一个 / 的索引位置(例如 18),可用于提取文件名。

⚙️ 引脚与参数说明

📥 输入引脚

引脚名称数据类型说明
原文本STRING被搜索的原始字符串。可通过多行文本框填写或连线传入。
目标子串STRING要查找的子字符串。可通过多行文本框填写或连线传入。

⚙️ 控件参数

控件名称类型说明
原文本多行文本框手动输入被搜索的文本。
目标子串多行文本框手动输入要查找的字符串。
忽略大小写复选框(高级)勾选后查找时不区分大小写。
反向查找复选框(高级)勾选后从字符串末尾向开头查找(返回最后一个匹配的位置)。

📤 输出引脚

引脚名称数据类型说明
位置索引INT子串首次(或末尾匹配)的首字符索引(0 起始),未找到返回 -1。

🔧 查找规则

  • 默认正向查找:返回第一次出现的子串起始索引。
  • 反向查找:返回最后一次出现的子串起始索引(从开头计算的索引值,而非倒数的索引)。
  • 忽略大小写:将原文本和目标子串均视为小写进行比较。
  • 空字符串处理:如果原文本或目标子串为空,返回 -1。
  • 索引从 0 开始:例如字符串 "abc" 中查找 "b" 返回 1

⚠️ 注意事项

  • 未找到返回值:-1 是一个常见的约定值,表示未匹配。在后续条件判断中需注意与有效索引 0 的区别。
  • 反向查找的索引:返回的索引仍然是从左到右计算的索引,不是反向计数的位置。例如 "ababa" 中反向查找 "a" 返回索引 4(最后一个 a 的位置)。
  • 忽略大小写:仅影响匹配比较,输出索引仍基于原字符串(不改变大小写)。
  • 多行文本:换行符 \n 被视为普通字符,索引包含它们。
  • 性能:查找操作时间复杂度 O(n*m) 最坏情况,对于长文本建议控制子串长度。

💎 小贴士

  • 结合【截取字符串】节点,可以根据位置索引提取子串前后部分。
  • 如果需要查找所有出现位置(不止第一个或最后一个),建议使用【正则提取】节点。
  • 利用反向查找可以实现“取最后一个分隔符之后的内容”这类常见需求。
  • 位置索引可以直接用于数值比较(如判断是否 ≥0)。
助理
咨询
微信
微信客服扫码添加微信
社群
QQ群扫码加入Q群
电话
免费咨询热线0371-67993886
顶部