查找替换逻辑
1.首先输入正则表达式+替换表达式,==>查找,此时会将找到的结果和替换结果罗列出来;
2.若需要对替换内容进行修改,可以点击替换内容对映的行,在下面的框里进行修改,然后灵活替换;
![图片[1]-Word正则工具高级教程-Word实用工具](https://www.officexlbg.cn/wp-content/uploads/2025/08/image-21.png)
也就是,最终替换是基于下面的列表内容进行一一替换的;
一、表达式的保存和历史记录
1.如何保存历史正则表达式?
按Ctrl键,点击这个地方:
![图片[2]-Word正则工具高级教程-Word实用工具](https://www.officexlbg.cn/wp-content/uploads/2025/08/image-18-1024x336.png)
这样就能保存历史正则了;
2.如何查看已经保存的正则表达式?
直接点击上面的正则两个字,就能弹出来了。
![图片[3]-Word正则工具高级教程-Word实用工具](https://www.officexlbg.cn/wp-content/uploads/2025/08/image-19.png)
3.如何查看历史输入记录?
直接点击替换这两个字即可:
![图片[4]-Word正则工具高级教程-Word实用工具](https://www.officexlbg.cn/wp-content/uploads/2025/08/image-20.png)
如果需要清空记录,只需Ctrl+点击替换二字即可。
二、特殊的表达式技巧
1.如何匹配常见的标点符号?
常规做法就是集合法:[,.;]列出一大堆;现在可以用\,来表示。【\+英文逗号即可】;等价于这些了:[!”#$%&'()*+,-./:;<=>?@[]^_`{|}~!\“”¥‘’(),、。:;《》?【】……·◎○※×±Φφδ≠≥≤↑→↓ ∥∧∨①②③④⑤⑥⑦⑧⑨⑩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ★☆℃√]
2.如何匹配中文?
同样,无需使用[一-龥],也无需[\4e00-9fa5],只需一个\y即可搞定;
3.如何查找回车?
使用\r即可,当然,[^\r]代表非回车字符;
4.如何多个同时替换?
在正则框里输入多行:
A=>B
C=>D
这样的形式,替换框留空即可。
![图片[5]-Word正则工具高级教程-Word实用工具](https://www.officexlbg.cn/wp-content/uploads/2025/08/image-26.png)
三、m模式的使用
1.我希望在查找到的行前面添加第1章,第2章,…怎么做?
查找部分自己设置,替换部分为:m=> “自定义” (++i.0) “自定义” m[0]
注意,后面的m[0]代表正则的$0,代表查找的本身的内容;
若查找的内容为第(.)章,则m[1]就代表括号里的内容了;若2个括号,则依次递推;
![图片[6]-Word正则工具高级教程-Word实用工具](https://www.officexlbg.cn/wp-content/uploads/2025/08/image-22.png)
当然,也可简写为:m=>++i.0,此时只是单纯增加阿拉伯数字;
这里的++i.0就是代表阿拉伯数字。所以,奇数可以这样表示:m=>(++i.0*2-1)
偶数则为m=>(++i.0*2)
2.函数的使用:半角转全角h2f,全角转半角f2h,英文标点符号转中文y2z,中文标点符号转英文标点符号:z2y
将查找到的内容替换为全角:m=>h2f(m[0])
将查找到的内容替换为半角:m=>f2h(m[0])
希望将【】这样的中文标点符号转英文[]:m=>z2y(m[0])
希望将[]这样的英文标点符号转中文【】:查找\[\],替换框:m=>z2y(m[0])
![图片[7]-Word正则工具高级教程-Word实用工具](https://www.officexlbg.cn/wp-content/uploads/2025/08/image-23-1024x248.png)
3.如何将正文中第一章、第二章、…这样的替换为第1章,第2章,…这样的形式?
方法一、剪贴板转置
第一步:查找输入:第.{1,3}章
第二步:excel里输入第1章,下拉,直至出现第5章;
第三步:替换输入:m=>StrSplit(A_clipboard,”`n”)[++i.0]
效果如下:
![图片[8]-Word正则工具高级教程-Word实用工具](https://www.officexlbg.cn/wp-content/uploads/2025/08/image-24.png)
方法二、直接使用c2n函数:输入框内容:m=>c2n(m[0])
4.字母转大小写:转小写:StrLower(m[0]),转大写:StrUpper(m[0])
5.计算字符长度:StrLen(m[0]);
6.截取字符:SubStr(m[0],1,2),取第1个字符开始,长度为2的字符;
7.替换中添加判断,如成绩,<60的,后面加上及格,否则不及格:(m[1] >60)?”及格”:”不及格”
![图片[9]-Word正则工具高级教程-Word实用工具](https://www.officexlbg.cn/wp-content/uploads/2025/08/image-25.png)
更多正则参考
一般设置
| 特殊 | 描述 |
|---|---|
| i) | 忽略大小写 |
| m) | 多行模式 |
| \R | 匹配\r, \r\n, \n |
| \a | 匹配文档表格中每个单元格的末尾标记 |
| \v | 匹配Shift+回车 |
| \, 匹配常见标点 | !”#$%&'()*+,-./:;<=>?@[]^_`{|}~!\“”¥‘’(),、。:;《》?【】……·◎○※×±Φφδ≠≥≤↑→↓ ∥∧∨①②③④⑤⑥⑦⑧⑨⑩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ★☆℃√ |
| \y 匹配常规中文 | 即等于:[\x{4e00}-\x{9fa5}] 约等于:[一-龟] |
替换中的m=>模式
| 格式 | 描述 |
|---|---|
| m=> | 必须前缀格式 |
| i.0 | 一般用作序号 如1:++i.0 如2:”<” ++i*2-1 “>” |
| m[0]、m[1] | 替换引用由1,1,1,2,$3变成m[1],m[2]… |
| StrLower(m[0]) StrUpper(m[0]) | 转小写 转大写 |
| StrLen(m[0]) | 长度 |
| SubStr(m[0],start,length) | 截取字符 |
| (m[0] >10 ) ? “Z” : “L” | 三元运算 |
| StrSplit(A_clipboard,”`n”)[++i.0] | 替换为剪切板的第n行数据 |
| y2z(m[0]) | 英文字符转中文字符: !”‘(),.:;<>?[] 转为 !“ ’(),。:;《》?【】 |
| z2y(m[0]) | 中文字符转英文字符: !“ ’(),。:;《》?【】 转为 !”‘(),.:;<>?[] |
| h2f(m[0]) f2h(m[0]) | 半角转全角 全角转半角 |
| c2n(m[0]) | v1.1.5+中文数字转阿拉伯数字 |
通用语法
| 常用元素 | 描述 |
|---|---|
| . | 默认情况下, 句点匹配换行符(\r\n) 中除\r外的任何单个字符 |
| * | 星号匹配零个或多个前面的字符, 例如, a* 可以匹配 ab 和 aaab. 它还可以匹配完全不包含 “a” 的任意字符串的开始处 |
| ? | 问号匹配零或一个前面的字符,可以理解为”前面的那项是可选的”. 例如, colou?r 可以匹配 color 和 colour, 因为 “u” 是可选的 |
| (?:xxx) | 不捕获分组 |
| + | 加号匹配一个或多个前面的字符,例如 a+ 可以匹配 ab 和 aaab. 但与 a* 和 a? 不同的是, 模式 a+ 不会匹配开始处没有 “a” 的字符串 |
| {min,max} | 匹配出现次数介于 min 和 max 的前面的字符, 例如, a{1,2} 可以匹配 ab 但只匹配 aaab 中的前两个a 此外, {3} 表示准确匹配 3 次, 而 {3,} 则表示匹配 3 次或更多. 注: 指定的数字必须小于 65536, 且第一个必须小于等于第二个 |
| […] | 字符类: 方括号把一列字符或一个范围括在了一起(或两者). 例如, [abc] 表示 “a, b 或 c 的中任何一个字符”. 使用破折号来创建范围; 例如, [a-z] 表示 “在小写字母 a 和 z(包含的) 之间的任何一个字符”. 列表和范围可以组合在一起; 例如 [a-zA-Z0-9_] 表示 “字母, 数字或下划线中的任何一个字符” 字符类后面可以使用 *, ?, + 或 {min,max} 进行限定. 例如, [0-9]+ 匹配一个或多个任意数字; 因此它可以匹配 xyz123 但不会匹配 abcxyz 通过 [[:xxx:]] 还支持下列 POSIX 命名集, 其中 xxx 是下列单词的其中一个: alnum, alpha, ascii(0-127), blank(space 或 tab), cntrl(控制字符), digit(0-9), xdigit(十六进制数), print, graph(排除了空格的打印字符), punct, lower, upper, space(空白), word(等同于 \w) 在字符类中, 只有在类中具有特殊含义的字符才需要进行转义; 例如 [^a], [a-b], [a]] 和 [\a] |
| [^…] | 匹配 不 在类中的任何一个字符. 例如, [^/]* 匹配零个或多个 不是 正斜杠的任意字符, 例如 http://. 同样地, [^0-9xyz] 匹配既不是数字也不是 x, y 或 z 的任何一个字符 |
| \d | 匹配任意一个数字(相当于类 [0-9]). 相反的, 大写的 \D 表示 “任意的 非 数字字符”. 这个和下面的两个都可以用在字符类中; 例如, [\d.-] 表示 “任何数字, 句点或负号” |
| \s | 匹配任意单个空白字符 , 主要是空格, tab 和换行符(r 和 n)大写的 \S 表示 “任何 非空白字符” |
| \w | 匹配任何单个 “单词” 字符, 即字母, 数字或下划线. 这等同于 [a-zA-Z0-9_] 大写的 \W 表示 “任何 非单词字符” |
| ^ $ | 抑扬符(^) 和美元符()被称为锚,因为它们不消耗任何字符;相反地,它们把模式限定在被搜索字符串的开始或末尾进行匹配<br>在模式的开始处使用表示需要在行的开始处进行匹配.例如,abc可以匹配abc123但不匹配123abc<br>在模式的末尾处使用) 被称为 锚, 因为它们不消耗任何字符; 相反地, 它们把模式限定在被搜索字符串的开始或末尾进行匹配<br>在模式的开始处使用 ^ 表示需要在行的开始处进行匹配. 例如, ^abc 可以匹配 abc123 但不匹配 123abc<br>在模式的末尾处使用)被称为锚,因为它们不消耗任何字符;相反地,它们把模式限定在被搜索字符串的开始或末尾进行匹配<br>在模式的开始处使用表示需要在行的开始处进行匹配.例如,abc可以匹配abc123但不匹配123abc<br>在模式的末尾处使用 表示需要在行的末端进行匹配. 例如, abc可以匹配123abc但不能匹配abc123<br>这两个锚还可以组合使用.例如,abc 可以匹配 123abc 但不能匹配 abc123<br>这两个锚还可以组合使用. 例如, ^abc可以匹配123abc但不能匹配abc123<br>这两个锚还可以组合使用.例如,abc 仅匹配 abc(即在它的前面或后面不能有另外的字符)如果被搜索的文本包含多行, 则可以使用 “m” 选项让锚应用于每行而不是把所有文本作为整体. 例如, am)^abc$ 可以匹配 123rnabcr`n789. 如果没有 “m” 选项则不会匹配成功 |
| \b | “单词边界”, 它类似锚, 因为它不消耗任何字符. 它要求当前字符的状态为单词字符(\w), 与前一个字符的状态相反. 它通常用来避免意外地匹配到在其他单词内的某个单词. 例如, \bcat\b 不会匹配 catfish, 但它可以匹配不论周围是否有标点或空白的 cat 大写的 \B 则相反: 它要求当前字符 不是 单词的边界 |
| | | 竖线将两个或多个可选项目分隔开来. 如果可选项目中 任何一个 满足条件, 则会形成匹配. 例如, gray|grey 既可以匹配 gray 也可以匹配 grey. 同样地, 模式 gr(a|e)y 中通过下面描述的括号的帮助可以实现同样的作用 |
查看更多>
贪婪: 默认情况下, *, ?, + 和 {min,max} 是贪婪的, 因为它们消耗到 最后一个 能满足整个模式的可能的所有字符. 要让它们停在 首个 可能的字符, 请在它们后面加上问号. 例如, 模式 <.+>(其中没有问号) 表示: “搜索一个 <, 接着一个或多个任意字符, 然后是一个 >”.
要在匹配 整个 字符串 <em>text</em> 时停止, 请在加号后加上问号: <.+?>. 这样会让匹配在第一个 ‘>’ 处停止, 因此它只匹配第一个标签 <em>.
预测和回顾断言: 这组 (?=…), (?!…), (?<=…) 和 (?<!…) 被称为断言, 因为它们要求符合某个条件但不消耗任何字符
例如: abc(?=.*xyz) 中含有预测断言, 它要求在字符串 abc 右边的某个位置存在字符串 xyz(如果不存在, 则匹配失败)
(?=…) 被称为 正 预测断言, 因为它要求指定的模式存在.
(?!…) 被称为 负 预测断言, 因为它要求指定的模式 不 存在.
同样地, (?<=…) 和 (?<!…) 分别是正的和负的 回顾 断言, 因为它们检查当前位置的 左边 而不是右边.回顾比预测受到更多的限制, 因为它们不支持可变大小的限定符, 例如 *, ? 和 +. 转义序列 \K 类似于回顾断言, 因为它会让前一个匹配的字符在最后的匹配字符串中省略. 例如, foo\Kbar 可以匹配 “foobar” 但报告匹配的结果为 “bar”.
对于中文字符的匹配, [一-龥] 匹配单个汉字(包含了几乎所有常见汉字)(等同于 [\x{4e00}-\x{9fa5}]), 容易记忆的版本为 [一-龟](等同于 [\x{4e00}-\x{9f9f}]). 而 [^\x00-\x7f] 能匹配 ASCII 码表以外的所有字符. ë 这个字符编码为 0x0065 0x0308, 字符串 “123ë56” 使用 .{1,6} 匹配到的是 “123ë5”, 而使用 \X{1,6} 匹配到的是 “123ë56”.
最后说明: 尽管这个页面涉及了大多数常用的正则表达式功能, 但是还有相当一部分您可能希望了解的其他功能没有提及, 例如条件子模式、递归等. 完整的 PCRE 手册请访问 www.pcre.org/pcre.txt
正则替换模式时:替换内容用
0引用整个匹配的内容,0引用整个匹配的内容,0引用整个匹配的内容,1引用第一组内容..2..2..2..3..
正则代码中用\1引用第一个分组内容:如 (ab)ka\1 可以匹配abkaab
更新历史
- v1.2.6[2025.06.21]
○ 修复审阅修订文档,查找位置错误的问题,注:【修订中间内容与两边内容已分割,正则查找不到】
○ 增加替换失败条目情况 - v1.2.5[2025.05.25]
○ 增加批量查找、替换;正则代码以回车分割;替换以=>分割
如:
\w+=>字母数字
\y+=>文本
转义用“=\>”

请登录后查看评论内容