ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4884|回复: 9

[求助] 正则表达式.Pattern引用问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-1-14 14:44 | 显示全部楼层 |阅读模式
各位老师我用正则表达式测试器写了一个公式想用来做配对,字符串为【“A”,“B",”C",“D"】
表达式如下:[\[]"(字符串A)","(字符串B)","(字符串C)","(字符串D)"]{1}。
经软件测试都可以得出正确结果,不过在写进vba的时候,公式为.Pattern=XXXX,总是弹窗说语法错误,我知道在引用的时候应在公式两端加上“  ", 不过还是无法解决。

请教大家谁有这方面的经验,我应该怎么往上加引号呢?小弟在此跪谢了!

TA的精华主题

TA的得分主题

发表于 2015-1-14 14:47 | 显示全部楼层
.Pattern="[\[]""(字符串A)"",""(字符串B)"",""(字符串C)"",""(字符串D)""]{1}"

TA的精华主题

TA的得分主题

发表于 2015-1-14 14:52 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-1-14 15:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
joforn 发表于 2015-1-14 14:47
.Pattern="[\[]""(字符串A)"",""(字符串B)"",""(字符串C)"",""(字符串D)""]{1}"

也可以这样,用强制转义符【\"】表示一个有效的【"】

.Pattern = "[\[]\"(A)\",\"(B)\",\"(C)\",\"(D)\"]{1}"

^_^

joforn版主的做法则更为通用……VBA中用连续两个的【""】来表示字符串中的1个有效【"】

理由是:单独的【"】字符已被用作【字符串】的【首尾起止设别符】
所以必须以其它约定的方法告诉VBA,我这里是一个有效的【"】字符,而不是字符串的开始或结束位置。

呵呵。


我的方法是在正则表达式中的特殊用法:
正则表达式规定了【\】和其它特殊字符联用时,可以作为强制转义符
……即紧跟后面的字符只被识别用作纯粹的字符,不作为特殊字符解释。

TA的精华主题

TA的得分主题

发表于 2015-1-14 15:20 | 显示全部楼层
本帖最后由 香川群子 于 2015-1-14 15:22 编辑

注意到,你这里一开始的 [\[] 事实上 仅需 \[ 即可。
这也是【\】作为转义符的用法。【\[】相当于匹配1个有效【[】字符,而不作为正则中的【组开始符号】【[】解释。

而单独的【]】在不会引起误解时,可以直接使用,不需要转义处理。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-14 17:50 | 显示全部楼层
joforn 发表于 2015-1-14 14:52
在字符串表达式中,用两个双引号表示一个双引号。

非常感谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-14 23:35 | 显示全部楼层
香川群子 发表于 2015-1-14 15:20
注意到,你这里一开始的 [\[] 事实上 仅需 \[ 即可。
这也是【\】作为转义符的用法。【\[】相当于匹配1个有 ...

谢谢您推荐的方法!不过我尝试了以下好像您这个简写在我的vba代码里不认啊,是不是需要控件的支持呢?

TA的精华主题

TA的得分主题

发表于 2018-1-25 06:54 | 显示全部楼层
joforn 发表于 2015-1-14 14:47
.Pattern="[\[]""(字符串A)"",""(字符串B)"",""(字符串C)"",""(字符串D)""]{1}"

双引号一直用不好。
(""[一-龥]+?""|[一-龥]),是不是正则方法,匹配汉字的方法。

TA的精华主题

TA的得分主题

发表于 2018-1-25 09:10 | 显示全部楼层
双引号用不好,就用chr(34),代表的也是一个双引号

TA的精华主题

TA的得分主题

发表于 2018-9-7 19:26 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-13 17:44 , Processed in 0.024041 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表