我正在尝试根据给定的单元集进行模式匹配。例如,我希望找到电子表格标题的位置(行/列),但不同工作表的标题名称可能略有不同。
我考虑将单元格的范围存储在数组中,并在数组中使用正则表达式,但我不确定如何做到这一点。
我尝试使用match/find函数,但我想搜索与确切模式匹配的内容,而不一定是确切的字符串或与其相近的内容。
标题可能是什么的示例如下所示:
店铺名称|店铺编号|商品名称|商品编号
或
门店编号|门店|商品编号|商品
目前我只是半硬编码来完成它,但我正在寻找一种容易重用的好方法。
编辑:
要澄清的是,我遇到困难的不是正则表达式本身,而是在一组单元中搜索给定的正则表达式。目前,我将一个单元格范围转换为一个多维数组,并遍历该数组以查找正则表达式。我的问题是,一开始就很难捕获数据数组(我不总是知道标头从哪里开始,标头可以是不同的顺序,并且电子表格中任何地方都可能有空格)。
发布于 2014-02-19 03:47:26
不打算回答Vb如何做到这一点,因为不知道Vb。
但是,使用您的示例,一般的正则表达式可能是这样的。
# (?i)^\s*(Store|Item)(?:\s+(Name|Number|\#|))?\s*$
(?i) # Case insensitive
^ # Beginning of string
\s* # optional whitespace
( Store | Item ) # (1), Capture Store or Item (add more)
(?: # Non-capture grp start
\s+ # 1 or more whitespace
( Name | Number | \# | ) # (2), Capture Name or Number or hashtag or nothing
# (add more)
)? # Non-capture grp end, do 0 or 1 time
\s* # optional whitespace
$ # End of stringhttps://stackoverflow.com/questions/21863026
复制相似问题