Word使用正则表达式

| 访问量:

Publish by James Qin

word中使用正则表达式需求

老板给了我一个word文档,但是里面的数据明显就是excel表格的形式,但是就是无法直接显示成表格,也无法筛选。如果要是一行一行的改,累人不说,也不符合咱这个技术人员的习惯啊,显得多么的傻啊。然后我又仔细看了下数据发现每行数据里都有一个类似的ID一样,长度从1~9999之间。所以我就想到为为什么不用正则表达式来处理一下数据呢,这样不就可以转换为csv格式的表格数据了吗,然后就可以想怎么处理就怎么处理了呀。

Word里正则表达式的搜索格式

原始数据里全是一行一个数据,所以我就先给所有的数据都将回车符替换为逗号。然后就该正则表达式出场了。

先用搜索的方式测试正则表达式是否正常,表达式为

,([0-9]{1,4}),

这样的高级格式就把所有的ID号给检索出来了,瞬间觉得之前的word搜索替换简直是太low了。同时需要启用使用通配符啊,不然他不按照这种格式进行查找。

word里正则表达式替换

全部找到了替换吧,当初傻傻的以为把搜索框里的内容直接放在替换框不就行了吗,然后结果是too young too simple,发现他替换的跟我写的一样啊,这是才发现原来替换是需要用到group的知识,就是组的概念。每一个()里的内容就代表一个组,然后我替换框里的内容就变成了

^p,/1,

就这样一个反斜杠1就完全实现了在原id号的前面加一个回车符了。完美。然后把整个文档放在一个csv的文本里面,再用excel打开,表格做成了。好神奇啊!!!

word里正则表达式和其他正则表达式对比

word里正则和其他的正则表达式可以说是一样的,下面就简单的再来记录下。

[字符1字符2]:字符1或字符2
[m-n]:序列m-n中的任意1个字符;
[!m-n]:序列m-n之外的任意1个字符;
[!字符1字符2]:字符1字符2之外的任意1个字符;
[^1-^127]:表示任一西文字符;
[!^1-^127]:表示任一中文字符;

{n}n个前1字符或前1表达式;
{n,}n个以上前1字符或表达式({1,}等于@,表示1个以上前1字符或表达式);
{n,m}nm个前一字符或前一表达式;
    
\通配符:引用通配符本身;
( ):表达式引导符,用于查找框,是为了在替换框中,用\n的形式来引用;
\n:与(  )呼应,在替换框中使用,表示引用查找框中第n个表达式的内容;
<:句首引导符;
>:句尾引导符;
@:表示一个以上字符;
James Qin

James Qin

i am a automation engineer,now i want to work in it.