java 文本编辑器替换特殊字符_【已解决】替换掉VSCode中显示出的特殊字符:NAK...

2024-03-15 00:30

本文主要是介绍java 文本编辑器替换特殊字符_【已解决】替换掉VSCode中显示出的特殊字符:NAK...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现有一个文件,用VSCode打开,发现里面:

显示出了NAK这种特殊不可见字符:

9c413a1f4dff947baf69a2cd998340ff.png

(注:

之前一直是开启显示控制字符:

8b8e828d6e82e560201ccc15a74b5791.png

所以此处才能看到这些特殊的,不可见的,控制字符的)

NAK

此处需要:

搞清楚NAK的含义

以及:

替换掉:

NAK\d+_\d+NAK

为空

之前自己整理过,

所以去找:

crifan 不可见字符十

进制十六

进制控制

字符转义

字符*说明Ctrl +

下列字母*

2115NAKNegative Acknowledgement(拒绝接收/无响应)U

1a05e60c211bf75a6ab4deeb86b3724a.png

21是NAK=Negative Acknowledgement(拒绝接收/无响应)

所以接着就是去搞清楚:

VSCode中的正则,如何输入表达

ASCII中特殊的不可见字符NAK

或者说  unicode字符

VSCode 正则 特殊字符

继续参考之前找到的:

->

->

去看看,如何写unicode字符

好像可以参考:\x7F       hex character code (exactly two digits)

去写hex 16进制值,试试

ASCII的NAK=10进制是12=16进制是0x15

结果无效:

34e15759c8e052b3f560b9d7c70df2db.png

再去参考:\x{10FFFF} any hex character code corresponding to a Unicode code point

试试unicode的code point

不过先去查查NAK的unicode的code point

unicode code point

unicode code point NAK

结果:\x{0015}\d+_\d+

也不行,匹配不到:

5db5669b47f15af9253d9b5517a55e17.png

VSCode regex special char\u0015

\u15

都不行。

VSCode regex unicode

32cf3b0d6d5d156f2d45e6f83c173781.png

我这里试了:\u0015

\u15

还是不行啊

去试试[\u0015]

[\u15]

都可以的,能找到字符的:

8c85094d074dd7741e20e50cfd6a4b67.png

然后去用:^[\u0015]\d+_\d+[\u0015]$

去掉这些有问题的单词

53ac7b200fea35654b27dfc6aba574bb.png

cd17e79b911a921398a5f6c428c56e25.png

然后再去顺带把多余的空行去掉\n\n+

\n

415933e696304c4b3fba0d3df2c24a5b.png

9088f94216203d2b348d6f7fa2f770a3.png

而此处:\u0015

之所以没有生效。

后来经过自己的细心和观察和猜测:

帖子2017年的,感觉是:

\uxxxx

VSCode应该是2017年就知道了

而此处

可以

-》

而对方是js代码

-〉但是我这里不可以。

-》难道是\uxxxx只有在js代码中的才有效?

-〉之所以这么测试是因为看到了:

提到了:

“one search engine uses theJavaScript regular expressionsyntax (albeit without the ‘u’ unicode flag),

the other is based onripgrepwhich usesRust regular expressionsyntax.”

即:

VSCode中用了两套正则的库:JS的正则表达式的库

ripgrep:内部是基于Rust正则表达式的库也就是我们之前找到的那个文档:regex – Rust

去试了试:

把其中部分内容,拷贝出来,设置代码语法是js,然后再去试试:\u0015,还真的可以:

19b384bf04c4e9feaf7f380d30cc239e.png

-》证明了我的猜测是对的。

【后记】

后来重新试了,csv文件中:\u0015

是生效的:

d0982eec9409a24e950b63924181d55d.png\u0015\d+_\d+\u0015

替换为:

1bba89890689ab048cbb82fc32054137.png

再去:\n\n+

\n

84dc829caf48cc371a70dd4c0cbdb4cd.png

3e59850d6340a5abe722a3f5ea4343ac.png

把文件从39M变成3.4M了:

32b9c4743aa24491a14db24a61038275.png

【总结】

VSCode中,如果使用查找(和替换的话),其中用到了正则的话

-〉在搜索中,选中了那个:.* 的图标

2de9070d4e8662f06281465d5617c2f5.png

-》

按照之前说法,好像有两套正则:JS的正则Regular Expressions – JavaScript | MDN

-》unicode(和hex的16进制)写法是:\xhhMatches the character with the code hh (two hexadecimal digits)

\uhhhhMatches the character with the code hhhh (four hexadecimal digits).

\u{hhhh}(only when u flag is set) Matches the character with the Unicode value hhhh (hexadecimal digits).

基于Rust的ripgrep调用的是:

regex – Rust

-》unicode(和hex的16进制)的写法是:\x7Fhex character code (exactly two digits)

\x{10FFFF}any hex character code corresponding to a Unicode code point

\u007Fhex character code (exactly four digits)

\u{7F}any hex character code corresponding to a Unicode code point

\U0000007Fhex character code (exactly eight digits)

\U{7F}any hex character code corresponding to a Unicode code point

-》不过不用操心,此处

VSCode版本是最新的:1.24.1

对于unicode,都支持:\u0015

的写法,即可找到NAK这个特殊字符了。

另外:新版Rust的unicode支持更完整:

之前0.25的旧版本的Rust:

是:\x7F       hex character code (exactly two digits)

\x{10FFFF} any hex character code corresponding to a Unicode code point

而新版本1.0

是:\x7F        hex character code (exactly two digits)

\x{10FFFF}  any hex character code corresponding to a Unicode code point

\u007F      hex character code (exactly four digits)

\u{7F}      any hex character code corresponding to a Unicode code point

\U0000007F  hex character code (exactly eight digits)

\U{7F}      any hex character code corresponding to a Unicode code point

这篇关于java 文本编辑器替换特殊字符_【已解决】替换掉VSCode中显示出的特殊字符:NAK...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/810221

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("