最近有个网友提问,下面的代码中并没有指定正则表达式的匹配模式(Pattern属性),为什么也可以执行,正则对象根据什么规则去进行匹配。
示例代码如下。

Sub Demo()Dim strText As StringDim strNew As StringDim varTextDim objRegExp As ObjectSet objRegExp = CreateObject("VBSCRIPT.REGEXP")With objRegExp.Global = TrueEnd WithstrText = "ABCDEFGH"strNew = objRegExp.Replace(strText, " ")varText = Split(Trim(strNew))StopSet objRegExp = Nothing
End Sub

运行代码,本地窗口如下所示。strText为需要处理的字符串,共有有8个字符,经过正则替换,结果保存在变量strNew中,不难看出首位各有一个空格,并且每个字符之间也插入了一个空格。这是如何实现的呢?

正则对象不指定匹配模式时,相当于Pattern = "",此时匹配字符串中的每一个位置(零宽),注意不是每个字符。例如对于字符串ABCD,包含4个字符,这个非常容易理解,但是其中包含5个位置(下箭头所示),如下图所示。黄色标记为字符串的开始和结束标记。

知道了匹配位置(零宽)和匹配字符的区别,就不难理解为什么正则替换的结果包含前导空格和尾随空格。
第12行代码使用Split函数将正则替换结果拆分为数组。


字符串转换为单字符数组有多种实现方式,本文只是其中的一种正则应用而已。

VBA之正则表达式(24)-- 字符串转数组相关推荐

  1. as3转换为html5,AS3和HTML5 - 使用正则表达式将字符串解析为数组

    我一直在寻找和使用RegEx一段时间,并试图找到我可以应用于AS3和HTML5的解决方案.AS3和HTML5 - 使用正则表达式将字符串解析为数组 我有一个自定义用户输入部分,256个字符,他们可以自 ...

  2. 正则表达式查找字符串_如何简单理解正则表达式?只需1分钟就可以看到她优美的舞姿...

    Hi,大家好,本章节开始将会从零开始和大家用图文的方式,让你从零基础学会正则表达式!有兴趣的小伙伴可以持续关注我,或者在专栏中进行查看自我学习,愿与君携手前行! 本文将要说到的正则表达式?可能初学的你 ...

  3. VBA之正则表达式(14)-- 提取指定位数的数字

    实例需求:只提取字符串中2位~4位的数字(无小数点),提取结果为蓝色数字. 测试字符串:6688-部门员工共10人与2019年6月成功完成销售额889966订单数689 这次的话题有些太简单了吧!?任 ...

  4. VBA之正则表达式(7)-- 乾坤大挪移(数据整理)

    实例需求:数据保存在A列中,数据组之间使用全角逗号分隔,重整后需要将每组数据开始的圆括号部分移动到末尾,并合并相同的全角方括号内容.貌似这个需求有些拗口,实际效果见B列. 示例代码如下. Sub Re ...

  5. JAVA关于字符串字符数组处理的小题目

    JAVA关于字符串&&字符数组的小题目 第二题:分析以下需求,并用代码实现 1.键盘录入一个大字符串,再录入一个小字符串 2.统计小字符串在大字符串中出现的次数 3.代码运行打印格式: ...

  6. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...

  7. oracle正则表达式截断,在oracle中使用正则表达式截取字符串

    在oracle中使用正则表达式截取字符串 Sql代码 --以下两条语句,将summary按-分解为两段字符串 regexp_substr(summary, '[^-]+', 1, 1) as _wor ...

  8. 【IT笔试面试题整理】字符串转数组+数组转字符串

    [试题描述]定义一个函数,字符串转数组数组转字符串 [参考代码] 1 public static int strToInt(String str) 2 { 3 int i = 0, num = 0; ...

  9. js字符串、数组和数字常用方法总结

    https://github.com/AnHyun/blog/issues/3 一.string 常用方法: 1.substring(start开始位置的索引,end结束位置索引) 截取的位置不包含结 ...

  10. php 获取字符串中的url,php使用正则表达式获取字符串中的URL

    今天写一个问答系统上线之后发现有很多人发链接了,由于业务部门要我们过滤掉网站地址了,下面我给大家分享一个提取字符串url地址函数,代码如下:$str ='本文实例讲述了php匹配字符串里所有URL地址 ...

最新文章

  1. CV业务落地用Transformer吗?
  2. Insertion Sort List
  3. 全球及中国矢量超导磁体行业“十四五”竞争状况及投资前景策略分析报告2021-2027年版
  4. [论文阅读] (11)ACE算法和暗通道先验图像去雾算法(Rizzi | 何恺明老师)
  5. 用法与区别_生抽老抽、蚝油味极鲜,总算搞清楚区别了,用法大不同,别用错了...
  6. LeetCode 549. 二叉树中最长的连续序列(树上DP)
  7. lombok之@RequiredArgsConstructor注解
  8. 招兵买马,韩国现代将前GM研究员招致麾下
  9. map java 初始化赋值_Java 中 HashMap 初始化时赋值(示例代码)
  10. Java 游戏报错 看不懂求教
  11. 机器学习:理解逻辑回归及二分类、多分类代码实践
  12. java instanceof和isInstance的关系 精析
  13. Linkedin第三方登录集成(android)
  14. C语言例题——密码校验
  15. 智能车过滤阳光_阳光为这辆车加油
  16. 高通6350:adb抓取Camera RAW/YUV数据
  17. java cap 反编译_应用 JD-Eclipse 插件实现 RFT 中 .class 文件的反向编译
  18. OpenGL ES教程VI之纹理贴图(原文对照)
  19. 上半年计算机二级试题,2016上半年计算机二级模拟题及答案
  20. python实现批量修改图片颜色

热门文章

  1. 关于请假申请的时间计算
  2. HTTP协议压缩格式和URL编码介绍
  3. Burpsuite抓包夜神模拟器
  4. 极其简单的Flutter 屏幕适配
  5. 使用3ds Max2022来制作简单的动漫头像
  6. 【Python turtle 画爱心】实战学习
  7. 用故事解析setTimeout和setInterval(内含js单线程和任务队列)
  8. 软件测试面试题:优惠券发布后测试场景图和设计?
  9. 每日刷题记录 (十五)
  10. 《统计学习方法》 第九章 EM算法(原理+代码)