大家好,我是东哥,你身边放心的香港保险顾问。

这是我的第501篇原创。

上篇文章,我们探讨了。

东哥给出了三种方法,是优选中的优选。

建议按俺的这个来。

今天在家,整理香港保险的一些内业。

之前积累的上百个保险方案,东哥想汇总在一起,做一些数据分析。

吼吼,技术范儿~

1

但是之前保险方案文件名的版本,前后变过好几回。

所以有一点规律,但又不那么严谨。

现在想用同一个规则重命名,以后再利用的时候,能节省不少时间。

传统上,打开Windows文件夹,挨个重命名就是。

但这么玩儿,效率显然太低了。

有了Total Commander,生活就简单多了。

咱可以利用它的正则表达式,批量搞定。

什么是Total Commander?

Total Commander(简称TC)是一款功能强大的文件管理器软件,专为Windows操作系统设计。

没有Mac版本。

由德国软件开发者Christian Ghisler开发。

https://www.ghisler.com/

也是东哥付费购买的第一款正版软件。

看看,东哥是Total Commander全球第252847名用户。

当时登记的,还是长春。

啊,我的青春。

2

印象中,Total Commander是一百来块钱吧。

这些年用它节省的时间,已经几百倍的把它的成本赚回来了。

效率奇高,所有文件就在指尖流淌。

那什么又是正则表达式?

正则表达式是一个计算机科学概念。

它可以用简单字符串来匹配文本中匹配指定格式的字符串

现在很多文本现代编辑器都支持用正则表达式搜索、取代匹配指定格式的字符串。

这个说法,是我用维基百科的介绍,改写的。

已经用了最通俗易懂的方法描述,但发现依然晦涩难懂。

老规矩,咱上东哥的简单版。

就是用符合它语法规则的表示方法,来匹配字符串。

匹配后干什么?

一般用来做批量替换。

就比如下面这些计划书

50万-25年-ANB3女性30岁CIE.pdf 50万-25年-ANB3女性30岁CIM.pdf 50万-25年-不吸烟-ANB3女士CIM.pdf 50万-25年-吸烟-ANB3女士CIM.pdf CIE3-30万-25年-ANB0女士3.pdf CIE3-40万-25年-ANB0女士3.pdf CIE3-42岁-100万x20年-ANB先生.pdf CIE3-42岁-100万x25年-ANB先生.pdf

毕竟还是有一些规则在,可以利用下。

但这时候传统Windows的重命名,就无能为力了。

就可以利用Total Commander+正则表达式搞定。

就比如下面这个。

一次操作,就把所有文件前面的26岁,变成了后面的ANB26。

吼吼~

3

本来还挺得意,一点一点做清洗。

结果不几下,出幺蛾子了。

明明规则是对的,但丫的无论如何,就是不给重命名了。

新名称和旧名称,愣是一模一样。

很晕。

翻了半天文档,发现居然是\W的问题。

改成小写,\w就可以。

这就奇怪了。

按说在正则表达式中,\w匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。

\W\w的补集,也就是除了\w之外的其他字符。

用数学语言来说,就是

\W = [^\w] =[^A-Za-z0-9_]

那么汉字,应该是在大写的\W里面啊。

怎么回事儿呢?

4

原来,这事儿还真比我想的复杂一些。

传统上,正则表达式的\w\W,的确像东哥上面分析的那样。

但是,在 Unicode 模式下,\w就会匹配更广泛的字符集。

包括许多语言中的字母和数字,这其中也包括汉字

什么是Unicode?

这个还得从ASCII说起。

上世纪50年代至60年代,随着计算机技术的发展,需要有一种标准的编码方式来表示文本数据。

1967年,美国国家标准协会(ANSI)颁布了美国信息交换标准代码(American Standard Code for Information Interchange,简称 ASCII),ASCII编码正式发布。

这个ASCII编码,可以表示128个字符,包括英文字母、数字、标点符号以及控制字符。

问题是,老美当时制定ASCII标准是,主要是面向英语。

对于其他语言,尤其是非拉丁字母的书写系统,比如汉字、俄语、阿拉伯语啥的,支持就很不足。

这直接导致了国际化的难题。

后来,各个国家和地区,就开始开发自己的编码标准。

比如中国的 GB2312、ISO 8859 系列等。

问题是,大家规矩不一样,就导致了编码混乱和互不兼容的问题。

也就是传说中的,乱码。

就比如,经典乱码锟斤拷。

到了1980年代末期,随着全球信息化的加速,世界各国人民也受不了了。

业界意识到需要一种统一的字符编码标准。

Unicode就是目前世界范围内给出的解决方案。

致力于为所有语言和书写系统中的每个字符提供一个唯一的编码,以消除编码冲突和促进全球信息交流。

最初的版本在1991年发布。

随着时间的推移,Unicode 不断扩展和完善,现在包括超过14万字符。

覆盖了几乎所有现存和历史上的书写系统。

但是现实总是历史的延续。

所以每天东方升起的太阳,其实都是昨天那颗……

现在我们的数字系统,既有ASCII编码的,也有Unicode编码的。

因此,如果正则表达式引擎支持 Unicode,那么\W将不会匹配汉字。

因为汉字会被视为单词字符 (\w)。

所以,把这段代码,用\w修改下,就可以了。

- (\w+)(\d+岁*)-(.+)
- $3-ANB$2$1
打开网易新闻 查看精彩图片
5

问题是,你怎么知道自己用的软件,支持的是那个类型的正则表达式?

呃,貌似只有挨个试了。

就比如东哥最常用的文本编辑器VS Code,就又是非Unicode版。

囧。

计算机的世界,人类果然不懂啊……

关注东哥,保护中产财富,一起慢慢变富。

东哥目前提供如下服务,有需要的朋友欢迎微信来撩。

  1. ,大家一起讨论赚钱演化;

  2. 添加东哥微信:jetorz ,领取约30万字的《东哥在湾区》2023年历史文章合集电子版;