|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
有下列数据:
原始数据 | 模拟结果 | 代码结果 | windows97于1997年出版了,97OK很好用 | 很好用 | | 在1998年又出版了windows98 ,和97一样,98也OK也很好用 | 也很好用 | | 后来又出版了windowsxp,xp更OK更好用 | | |
代码如下:
Sub test()
Dim reg, i&
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "(?=windows)(?=\d+年).*OK(.*)"
For i = 2 To 4
Cells(i, 3) = reg.Execute(Cells(i, 1))(0).submatches(0)
Next i
End Sub
我的要求是,如果同时包含windows和年份(\d+年),则取OK后面的字符,如果不同时包含就不取。
我用表达式 (?=windows)(?=\d+年).*OK(.*) 为什么得不到正确结果呢?谁能解释一下原因。
正则学习请教3.rar
(6.49 KB, 下载次数: 8)
|
|