跳到主内容
UniKit

截取指定字符前的文本

把「每行一项」的列表按分隔字符串截取:默认取第一个分隔符之前的内容(适合 tom@example.com 取用户名),也可以取最后一个之前;没命中分隔符的行默认原样保留,可切换成丢掉,并给出命中与未命中行数。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

列表

截取结果

一行一项,分隔符按字面量匹配,可直接复制。

输入列表与分隔字符串后即可截取

行数: 0 · 命中行: 0 · 未命中: 0

这个工具能做什么

  • 从邮箱、URL 或「名称-编号」这类复合字段里只取分隔符左侧的部分做匹配或去重。
  • 去掉「文件名.扩展名」的扩展名,或者从 `https://` 开头的行里只取协议名。
  • 拆 `编号-名称` 时取编号,方便直接当成主键排序。

示例

输入

tom@example.com
jerry@example.com
没有 at 的行

输出

tom
jerry
没有 at 的行

取第一个 @ 之前的内容:邮箱列表变成用户名列表;没有 @ 的行原样保留,计入「未命中」。

常见问题

一行里有多个分隔符,取哪一个之前的?

默认取第一个之前(a@b@c 得到 a)。想取最后一个之前就把「取哪一段」切成「最后一个分隔符之前」,此时 a@b@c 得到 a@b。

没有分隔符的行会怎样?

默认原样保留,统计里的「未命中」会记下这些行。想让它们彻底消失就勾选「丢掉未命中行」,输出里只剩真正被截取过的行。

分隔符可以写多长?

任意长度,按字面量匹配(不是正则),例如 `://`、` - `、`::` 都行。空分隔符会报错:空分隔符等于「每个字符之前」,没有确定含义。

和「截取指定字符后」是一对吗?

是。两者用同一套分隔符与命中规则,只是取分隔符的左侧或右侧;把两者配合使用就能把一行按分隔符拆成两列。

中文字符算几个?

这个工具只按分隔字符串定位,不做字符计数,所以汉字、emoji 都不会被切坏;只有位置类工具才需要关心「一个汉字算几个字符」。

关键词:截取之前取分隔符前before delimitersplit before取 at 前截取指定字符前list before字符串前截取

同类工具