Ruby中能否使用正则表达式匹配退格字符"\b"?
匹配退格字符"\b"的正则解决方案
问题根源
正则表达式里的\b是单词边界的特殊元字符,不是用来匹配ASCII退格字符(ASCII码0x08)的;而字符串中的"\b"实际是单个退格字符,所以直接用/\b/或/\\b/都无法匹配成功。
正确实现方法
- 方法一:借助
Regexp.quote生成匹配规则Regexp.quote会把特殊字符转义成正则可识别的字面量,对退格字符处理后再生成正则,就能匹配到目标字符:
Regexp.new(Regexp.quote("\b")).match("\b") # 执行后会返回匹配到的退格字符
- 方法二:直接用十六进制转义表示退格
退格字符的ASCII十六进制是0x08,正则中可以直接用\x08来表示这个字符:
/\x08/.match("\b")
- 方法三:使用八进制转义
退格字符的八进制是010,正则里也可以用这个写法匹配:
/\010/.match("\b")
内容的提问来源于stack exchange,提问作者Kewei Jiang
相关产品推荐
相关产品推荐

