为了账号安全,请及时绑定邮箱和手机立即绑定

golang 如何处理复杂的正则表达式模式

golang 如何处理复杂的正则表达式模式

Go
皈依舞 2021-11-22 15:37:44
我想替换 golang 中 shell 输出的所有 ANSI/VT100/xterm 控制序列 我在这里搜索了这个正则表达式模式,但它不起作用!这是错误:panic: regexp: Compile(`[\b]`): error parsing regexp: invalid escape sequence: `\b`让我说得更清楚。我想在 golang 中完成以下代码:  #!/usr/bin/env perl  while (<>) {      s/ \e[ #%()*+\-.\/]. |         (?:\e\[|\x9b) [ -?]* [@-~] | # CSI ... Cmd         (?:\e\]|\x9d) .*? (?:\e\\|[\a\x9c]) | # OSC ... (ST|BEL)         (?:\e[P^_]|[\x90\x9e\x9f]) .*? (?:\e\\|\x9c) | # (DCS|PM|APC) ... ST         \e.|[\x80-\x9f] //xg;         1 while s/[^\b][\b]//g;  # remove all non-backspace followed by backspace      print;  }
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

使用[^\x08]\x08来代替。


[\b]并且\e不包括在正则表达式语法中声明的受支持转义序列中。

Backspace:对于其他正则表达式,转义序列\b在字符类中具有不同的含义:它匹配退格字符(十六进制 08)。但是,您可以将其转义为\x08.

Esc:同样,对于 Escape \e(十六进制 1B),使用\x1b.

此外,如果您想匹配任何控制字符,您可以使用[[:cntrl:]], 匹配[\x00-\x1F\x7F].


查看完整回答
反对 回复 2021-11-22
  • 1 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信