# textkit 库模块帮助文档

[文本工具集](https://www.aardio.com/zh-cn/docs/library/textkit/) [AI 提示词](https://www.aardio.com/zh-cn/docs/library/textkit/agent.html)

## textkit 成员列表 <a id="textkit" href="#textkit">&#x23;</a>

字面文本手术刀：按字面标记与行切割文本；无正则、无转义、无位置参数，区分大小写。  
缺少标记→null；找到但为空→""（真值，可用 `: 默认值` 兜底）；输入 null→null，链式调用最后判断一次即可。  
需要模式、位置或嵌套解析时改用 string 函数或专用解析器

### textkit.after(s,mark) <a id="textkit.after" href="#textkit.after">&#x23;</a>
第一个 mark 之后的文本 → text|null

### textkit.before(s,mark) <a id="textkit.before" href="#textkit.before">&#x23;</a>
第一个 mark 之前的文本 → text|null

### textkit.between(s,beginMark,endMark) <a id="textkit.between" href="#textkit.between">&#x23;</a>
第一对标记之间的文本，不含标记 → text|null  
结束标记从开始标记之后查找；不解析嵌套、引号或转义

### textkit.dedent(s) <a id="textkit.dedent" href="#textkit.dedent">&#x23;</a>
去除非空白行共同的 SPACE/TAB 缩进，保留相对缩进 → text  
TAB 与空格不互换；空白行不变  
搬移代码块：textkit.indent(textkit.dedent(s),prefix)

### textkit.indent(s,prefix) <a id="textkit.indent" href="#textkit.indent">&#x23;</a>
给每个非空白行加字面前缀 → text  
prefix 非空，例如 '\t'、"    "、"> "、"// "；空白行不变

### textkit.mapLines(s,fn) <a id="textkit.mapLines" href="#textkit.mapLines">&#x23;</a>
逐行处理 → text  
fn(line,lineNo) 返回：字符串=新行正文，false=删除该行，null/true=保留  
原 CRLF/LF/CR 逐行保留，fn 不要返回行尾；末尾换行结束最后一行，空文本没有行

### textkit.replaceBetween(s,beginMark,endMark,replacement) <a id="textkit.replaceBetween" href="#textkit.replaceBetween">&#x23;</a>
替换第一对标记之间的内容，保留标记 → newText|null  
replacement 必须指定，空串表示清空；全局字面替换用 string.replaceLiteral

### textkit.splitOnce(s,sep) <a id="textkit.splitOnce" href="#textkit.splitOnce">&#x23;</a>
在第一个 sep 处拆分 → left,right（两个返回值，不是数组）  
未找到→null；拆分全部用 string.splitLiteral
