跳至主要内容

使用正则表达式提取节点

Extract with Regex Node Screenshot

概述

Extract With Regex(或Extract Regex)节点允许您使用正则表达式从一个字符串中提取一个或多个字符串。

正则表达式中的每个捕获组将对应节点上的一个输出端口,因此输出数量将与正则表达式中的捕获组数量相等。

Extract With Regex节点可用于多种情况,例如解析LLM的响应以提取特定值,或解析文件中的字符串以提取特定值。

如果您的正则表达式中没有任何捕获组,您仍然可以使用节点的MatchesSucceededFailed输出来确定正则表达式是否匹配输入字符串。

输入项

标题数据类型描述默认值备注
InputstringThe string to match the regex against.(required)If the value is not a string, it will be coerced into a string before matching.

示例1:从LLM响应中提取命令

  1. 创建一个Chat Node并将设置为SystemPrompt Node传递到其prompt输入中,内容类似如下:
    您的回复可以触发命令,例如`!hello`会让用户看到"Hello world"。现在就来试试吧!
  2. 将Chat节点的输出内容输入到一个使用以下正则表达式的Extract With Regex节点中:
    !([a-zA-Z]+)
  3. Output 1端口的输出连接到另一个Text节点以获取匹配的命令。Text节点的输出应为hello

Extract with Regex Example 1

错误处理

如果未提供输入字符串,节点将报错。如果输入不是字符串,它将在匹配前被强制转换为字符串。

如果正则表达式无效,节点将报错。

如果启用了Error on failed设置,当正则表达式未能匹配输入字符串时,节点将报错。

常见问题

问:如何匹配包含特殊字符的字符串?

正则表达式编辑器中无法对换行符等特殊字符进行转义,但您可以直接在编辑器的正则表达式中输入实际的换行符,这些换行符会被保留。因此要匹配换行,只需在正则表达式编辑器中输入换行即可。

另请参阅