这可能会引用不同的字符编码,其中t
大于x80
并且x80
无法正常处理。
以 EBCDIC 扫描代码为例(请参阅此处以获取参考)。
(但我也不知道为什么有人要这样写)
对于 ASCII 我有一个疯狂的猜测:如果-t
意味着“直到下一个标记 -1”或者如果放在最后一行“直到允许的字符结束”,第二个查询将说明:
To:(not a newline, more than one character)(not a newline)
所以基本上这个表达式的[\x01-t\x0B\x0C\x0E-t\x80-t]
意思是[^\r\n]
。
如果将其应用于(.Ç-t]|...[Ç-t])
此将处理大于 7 位 ASCII 的任何字符,该字符也可以处理所有 unicode(除了前 127 个字符)。
(话虽如此,我仍然不知道为什么有人应该这样写,但至少除了“它是一个错误”之外,这是一个连贯的解释)
也许有帮助:如果您写出 \xYY,您发布的 reexes 是什么意思?ASCII:
/=\NULL\DEVICE_CONTROL_2\NULL\.{10}\(.Ç-t]|...[Ç-t])/smiR
/^To\:[^\r\n]+[\START_OF_HEADING-t\VERTICALTAB\FORMFEED\SHIFTOUT\Ç-t]/smi
照顾\0x12
akaDevice control 2
可能会有所帮助,因为这不会出现在文本中,但可能会出现在网络流量中。