正则表达式如何匹配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文件的主要内容,如果未能解决你的问题,请参考以下文章