wps及word通配匹配与正则匹配之异同

前言

今天在chatgpt上找找有什么比赛可以参加。下面是它给我的部分答案,我想将其制成文档裱起来,并突出比赛名方便日后查找。
wps及word通配匹配与正则匹配之异同_第1张图片
这时理所当然地想到了查找替换功能,但是当我启用时却发现正则匹配居然没有了,现在只有通配匹配了。
wps及word通配匹配与正则匹配之异同_第2张图片
使用过后发现其基本使用规则还是和正则挺像的,但有部分功能还是有差异。下文将详细描述其异同,并攻略通配匹配功能。

通配匹配攻略

注意:通配有两个大坑:
1、无法进行贪婪匹配 (任意多字符*除外)
2、不会特殊识别回车换行空格等等特殊字符
因此通配最好用投机取巧的方式进行匹配,不宜硬刚

相同点

1、 匹配规则相似,虽然转义字符不同,但语法格式一致。

字符 正则 通配
XX省 ..省 或 .{2}省 ??省 或 ?{2}省
单个字母或数字 [0-9 a-z A-Z] [0-9 a-z A-Z]
n到m个 寄{n,m} 寄{n,m}

相异点

1、 通配符相异。

字符 正则 通配 注释
任意单个字符 . 正则中不包含换行符
任意多个字符 .* * 正则中不包含换行符
多个x(贪婪) x+ x{1,} 通配存在重复匹配现象
不包含x字符(贪婪) [^x]+ [!x]{1,} 通配存在重复匹配现象
转义字符 \ \ 和 ^
以x开头 ^x
以y结尾 y$ y>

2、 通配规则适用范围小于正则规则。
如上面所说,正则匹配时多半会以"换行"和"回车"符号分段匹配,即搜索中遇"换行"和"回车"自动停止搜索。

3、 通配规则不适用贪婪查找,任意多字符*除外。其他表达式都是最小查找。

通配符

参考下列文章:
word和wps常用通配符和正则批量查找替换内容技巧
MS Office WORD中特殊字符及标记的查找与替换
Word中查找/替换通配符和代码

实战案例

匹配每段中**之间的字符

(形如:**大学生**、**某某大赛**等)
wps及word通配匹配与正则匹配之异同_第3张图片

当我们直接选用以下代码时都会出现跨段落选取的问题:

(\*\*)*(\*\*)
(\*\*)[!^p]@(\*\*)

wps及word通配匹配与正则匹配之异同_第4张图片
第二例失败的原因在于中括号只会进行单个字符的识别,所以所有转义字符都不能被中括号识别,同样也不能被反选!符号作用。因此在这种时候我们要学会变通:

(\*\*)[!]@(\*\*)

观察上下文可知,每段应识别字符后都会接,因此我们只要拒绝对其的识别便能避免跨段落选取。

注:正则匹配不会出现跨段选取的问题,因此直接使用第一种识别即可:/(\*\*).*(\*\*)/

你可能感兴趣的:(wps,word,通配符,正则匹配,查找,word通配查找)