Update DROP_ANSI_PATTERN

This commit is contained in:
Karlatemp 2020-11-28 20:47:07 +08:00
parent e1f6e69243
commit 3a203ae1d4
No known key found for this signature in database
GPG Key ID: 21FBDDF664FF06F8

View File

@ -84,7 +84,17 @@ public open class AnsiMessageBuilder public constructor(
}
public companion object {
private val DROP_ANSI_PATTERN = """\u001b\[([0-9]+)(;[0-9]+)*m""".toRegex()
// CSI序列由ESC [、若干个包括0个“参数字节”、若干个“中间字节”以及一个“最终字节”组成。各部分的字符范围如下
//
// CSI序列在ESC [之后各个组成部分的字符范围[12]:5.4
// 组成部分 字符范围 ASCII
// 参数字节 0x300x3F 09:;<=>?
// 中间字节 0x200x2F 空格、!"#$%&'()*+,-./
// 最终字节 0x400x7E @AZ[\]^_`az{|}~
//
// @see https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#CSI%E5%BA%8F%E5%88%97
@Suppress("RegExpRedundantEscape")
private val DROP_ANSI_PATTERN = """\u001b\[([\u0030-\u003F])*?([\u0020-\u002F])*?[\u0040-\u007E]""".toRegex()
/**
* [String] 中剔除 ansi 控制符