EXCEL 匹配正则表达式

抱歉……居然只有5分了……我想问问,比如A列为随便一些字符,B列为各种各样的正则表达式,如何实现在C列显示A列的字符串是否匹配B列的正则表达式。流程比如:A1与B列的正则... 抱歉……居然只有5分了……

我想问问,比如A列为随便一些字符,B列为各种各样的正则表达式,如何实现在C列显示A列的字符串是否匹配B列的正则表达式。

流程比如:A1与B列的正则表达式都匹配一遍,C列显示1则表示能匹配上,0则表示不满足

感谢
B列这个匹配列是正则表达式
用A2举例,流程是先验证A2中是否含有B2这个正则表达式表达的内容,如果有就在C2写上B2,如果没有那么继续验证A2中是否含有B3这个正则表达式表达的内容,如果有就在C2写上B3,如果没有那么继续验证A2中是否含有B4…如此循环,到最后如果都没有C2就空着
A2之后再是A3跟B2匹配,跟B3匹配直到出现A3中包含Bx这个表达式中表达的内容
求问各位大大有法实现吗,谢谢
展开
 我来答
Zipall
2012-04-24 · TA获得超过1.3万个赞
知道大有可为答主
回答量:8104
采纳率:42%
帮助的人:8537万
展开全部
可以用vba完成,按住alt依次按f11,i,m
粘贴代码后按f5即可在c列得到结果

Sub Test()
atr = Range("a65536").End(xlUp).Row
btr = Range("b65536").End(xlUp).Row
a = Range("a1:a" & atr).Value
b = Range("b1:b" & btr).Value
ReDim c(1 To atr, 1 To 1)
Set reg = CreateObject("vbscript.regexp")
With reg
.Global = True
.IgnoreCase = True
For ar = 1 To atr
For br = 1 To btr
.Pattern = b(br, 1)
If .Test(a(ar, 1)) Then
c(ar, 1) = "匹配"
Exit For
End If
Next
Next
End With
Range("c1:c" & atr) = c
Set reg = Nothing
End Sub
更多追问追答
追问
用这个的话,无论我怎么改B列的正则表达式,C列都是“匹配”,求修改~感激不尽
追答
将A:B列的具体值贴出来
章氏SaiKouDa
2012-04-24 · TA获得超过212个赞
知道小有建树答主
回答量:340
采纳率:0%
帮助的人:208万
展开全部
好像是在说自动比较的算法?
B需要切割字符串,然后自动生成表达式数组
然后用for循环测试并生成C?
有个东西要提一下:
using System.Collections.Generic;

List<string> c=new List<string>();

我建议一个A对一个List<C>();然后c又是一个List
因为每个B有可能生成很多段string。
貌似是为了试验用的?
我有一个,上Q来拿
追问
已经发送百度小心,求加Q
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SXB8113
2012-04-23 · 知道合伙人软件行家
SXB8113
知道合伙人软件行家
采纳数:14678 获赞数:57815
1969.2入伍,防化兵。1982.2转业到公安局。上夜大取得大专文凭。从事公安科技相关工作。

向TA提问 私信TA
展开全部
“匹配”是神马?怎样才算匹配?说说清楚。
更多追问追答
追问
抱歉,表述不清……
意思是看正则表达式描述的内容(B列B1,B2,B3让它在B列里一个个找,反正找到就在C显示1,没找到就0),在A1里出现没有。不断重复这个过程完成A1-AX的验证。

这有法实现吗
追答
C列做公式 =COUNTIF(A$1:A$100,B1),下拉公式。也许是你要的。试试看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式