正则表达式如何匹配excel文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式如何匹配excel文件相关的知识,希望对你有一定的参考价值。

比如我想在VB中判断选择的文件是否为excel文件,*.xls;*.xl*;*.xla;*.xlt;*.xlm;*.xlc;*.xlw

Excel文件,常见格式有

*.xls;*.xl*;*.xla;*.xlt;*.xlm;*.xlc;*.xlw


使用正则表达式,可以用/\\.xl.1,2$/

下面着重看Excel2007+中的常用文件格式:

    *.xlsx:基于XML文件格式的Excel 2007工作簿缺省格式 

    *.xlsm:基于XML且启用宏的Excel 2007工作簿 

    *.xltx:Excel2007模板格式 

    *.xltm:Excel 2007宏模板 

    *.xlam:Excel 2007宏加载项 

    *.xlsb:Excel2007为大的或复杂的工作簿新引入的非XML二进制文件格,允许优化执行和向后兼容。


可以用另一个正则表达式,来精确匹配这6种格式

/\\.xl(s[xmb]|t[xm]|am)$/

参考技术A 对应的正则表达式:
"^.*\.(?:xls|xl|xla|xlt|xlm|xlc|xlw)$"
如果匹配上面的表达式,则文件是Excel文件本回答被提问者采纳
参考技术B 我在Kettle 用^.+.xl?$ 参考技术C *.xl*

如何计算 AIX 上每个文件的正则表达式匹配总数

【中文标题】如何计算 AIX 上每个文件的正则表达式匹配总数【英文标题】:How to count total number of matches of regular expression per file on AIX 【发布时间】:2015-07-18 23:29:13 【问题描述】:

Grep 通常用于显示包含指定模式匹配的行。 AIX 中是否有任何方法可以显示搜索到的每个文件中模式的匹配总数?也就是说,每一行中的每一个匹配都应该被计算在内。

我试过grep -c pattern filename,但它只计算每个匹配行一次,无论它包含多少匹配项。

【问题讨论】:

与论坛网站不同,我们不使用“谢谢”、“任何帮助表示赞赏”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?. 你想要什么输出?每个新的匹配字符串都在新行上?或者类似于每个匹配行的匹配数?或者只是每个文件的匹配总数? 我只想要每个文件的匹配总数。 【参考方案1】:

grep -o foo filename.txt | wc -l

【讨论】:

【参考方案2】:

在此文件中找到 3 次出现的 b.

$ cat file
a bc d be f
bg h

$ awk 'c+=gsub(/b./,"") ENDprint c+0' file
3

以上内容适用于任何操作系统上的任何 awk(当然,旧的、损坏的 awk 除外)。

【讨论】:

【参考方案3】:

你需要先匹配模式,然后计算匹配的数量。

-o 开关将在新行上产生每个匹配项。

然后只计算总行数。

类似:

grep -o pattern filename | wc -l

【讨论】:

您在哪个版本的 AIX 上测试过这个?在 7.1 上不受支持。

以上是关于正则表达式如何匹配excel文件的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式查找匹配后如何替换?

excel 利用正则表达式匹配工作表中的数据

Nginx中的正则如何匹配数字

如何在delphi中使用正则表达式

正则表达式如何替换并修改自身的部分内容?

正则表达式高级替换,匹配后进行运算,然后使用结果替换,怎么实现?