1.正则表达式失灵(excel2016)

案列:提取一段字符串中数字并求和

Function sumnum(x)
Dim regexp As Object
Set reg = CreateObject("VBAScript.RegExp")
'Dim reg As New regexp
Dim s, n, m
With reg
.Global = True
.Pattern = "\d*\.?\d*"
Set n = .Execute(x)
For Each m In n
s = s + Val(m)
Next m
End With
sumnum = s
End Function

  采用代码引用正则的方式貌似好像出现错误值结果。解决方式是选用VBA引用法,在工具里面勾选引用正则,在采用new的方式创建,结果正确。

错误结果:

 2、正则匹配中括号注意点

()\数字 :\不可省略,后面数字表示引用前面的第几组括号,引用顺序是先前后后,先外后里。

(())(())\3  下面第3组括号
1 2 3 4

  案列:

引用第一组括号中内容((A3){2})
.Pattern = "((A3){2})Q\1" -> A3A3QA3A3 引用第4组括号中内容(B4)
.Pattern = "((A3){2})((B4){2})Q\4" -> A3A3B4B4QB4

3、预测查找(?=字符)和负预测查找(?!字符)

预测查找原则:先进行搜索等号后的字符在待匹配项中的位置。找到匹配项后按照给定规则先在匹配文本之前查找内容,查找到后输出,若括号(?=字符)后还有相应满足规则也会进行匹配。

需注意的是匹配是不包括预查找定位到的字符的。除非在之后定义相关的规则如加.

.Pattern = "^(?=.*\d).{4,8}$"
表示匹配4~8个任意字符,最少4个最多8个,待匹配的字符必须在此范围内超过,或下于均匹配不到 .Pattern = "\d+(?=元)." 匹配任意个数字后面跟1个字符(除了\n之外的)

负预测查找:查找的是除了该字符外的其他字符

 .Pattern = "(?!中国).*"   匹配不是中国的其他字符,中国在一起会从国字依次往后查找匹配
.Pattern = "^(?!中国).*" 匹配开头不是中国的其他字符 sr = "中国建筑集团公司"
第一种情况匹配出 “国建筑集团公司”
第二种情况匹配出 空

  

VB 正则匹配中的括号的更多相关文章

  1. 正则匹配中 ^ $ 和 \b 的区别

    正则匹配中 ^ $ 和 \b 的区别     ^和$分别代表字符串的开始和结束,因此^\d$只能匹配包含一个数字的字符串\b代表单词边界,其前后必须是不同类型的字符,可以组成单词的字符为一种类型,不可 ...

  2. Python正则匹配字母大小写不敏感在读xml中的应用

    需要解决的问题:要匹配字符串,字符串中字母的大小写不确定,如何匹配? 问题出现之前是使用字符串比较的方式,比如要匹配'abc',则用语句: if s == 'abc':#s为需要匹配的字符串 prin ...

  3. Nginx 笔记与总结(7)Location:正则匹配

    在 /usr/local/nginx/conf/nginx.conf 的默认 server 段中,保留默认的 location 信息(之前测试的 location 配置删除): location / ...

  4. php中的正则函数:正则匹配,正则替换,正则分割 所有的操作都不会影响原来的字符串.

    有一个长期的误解, 如果要分组, 必须用 小括号 和 |, 而不能用 中括号 和 |. [ab|AB]表示的不是 匹配 ab或 AB, 而是表示 匹配 a,b, |, A, B 这5个字符中 的任意 ...

  5. Python中正则匹配使用findall时的注意事项

    在使用正则搜索内容时遇到一个小坑,百度搜了一下,遇到这个坑的还不少,特此记录一下. 比如说有一个字符串  "123@qq.comaaa@163.combbb@126.comasdf111@a ...

  6. Python中正则匹配使用findall,捕获分组(xxx)和非捕获分组(?:xxx)的差异

    转自:https://blog.csdn.net/qq_42739440/article/details/81117919 下面是我在用findall匹配字符串时遇到的一个坑,分享出来供大家跳坑. 例 ...

  7. php中的正则函数主要有三个-正则匹配,正则替换

    php中变量的声明? 由于php声明变量的时候, 不支持使用 var关键字, 又不能直接写一个变量名字, 孤零零的放在那里, 所以, 在php中声明变量的方式, 同时也是给变量初始化的形式, 即: & ...

  8. 关于php中正则匹配包括换行符在内的任意字符的问题总结

    要使用正则匹配任意字符的话,通常有以下几种方法,这里我分别对每一种方法在使用的过程中做一个总结: 第一种方式:[.\n]*? 示例 ? PHP preg_match_all('/<div cla ...

  9. iOS 中的正则匹配(工具类方法)

    正则表达式 正则表达式是对字符串操作的一种逻辑公式, 用事先定义好的一些特定字符.及这些特定字符的组合, 组成一个"规则字符串", 这个"规则字符串"用来表达对 ...

随机推荐

  1. 解决win10创建Django工程,运行django-admin.py startproject 工程名,失败的问题

          在看我这篇教程的前提是你应该已经正确装好python和Django了,好了,废话不说了,正题走你!你现在是不是很纠结自己运行django-admin.py startproject 工程名 ...

  2. windows电脑安装python教程

    1 版本选择 2.x版本将慢慢退出历史的舞台,建议你从3.x开始学习,本教程所使用的python版本是3.6 2 下载安装包 进入官网下载页面 https://www.python.org/downl ...

  3. Word 写论文的一些教训和经验

    参考文献 写正文时就在引用位置添加参考文献的title,写完后,在百度学术或谷歌学术中搜索参考文献获取GB/T 7714的参考格式,在参考文献的章节为文献编号,在引用位置插入交叉引用. 插图 可以先在 ...

  4. JS中的Map对象

    1,js创建map对象 var map = new Map(); 2.将键值对放入map对象 map.set("key",value) map.set("key1&quo ...

  5. ListView的DrawSubItem时间添加边框,字体变粗问题

    procedure TFrmrdp.ListView1AdvancedCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubIt ...

  6. Django(十一)视图详解:基本使用、登录实例、HttpReqeust对象、HttpResponse对象

    一.视图(基于类的视图) [参考]https://docs.djangoproject.com/zh-hans/3.0/topics/class-based-views/intro/ 1)视图的功能 ...

  7. 吴裕雄--天生自然java开发常用类库学习笔记:Map接口

    import java.util.HashMap ; import java.util.Map ; public class HashMapDemo01{ public static void mai ...

  8. spring boot 使用swagger

    在pom.xml中添加maven依赖 <dependency> <groupId>io.springfox</groupId> <artifactId> ...

  9. Oracle IF-ELSE条件判断结构

    关于条件判断的几个函数: 一.IF-ELSE 判断语句1.IF 语法 IF 表达式 THEN ... END IF; 输入账号名 kiki 以登陆账号 declare v_name ):='& ...

  10. Python实战案例:这是你见过的最详细的JS加密登录某博

    0x00 抓包分析 简单的搜索之后发现,很多参数都是登陆上面这个请求返回的值,这个请求在输入完账号光标到达密码框时就会生成! 0x01 加密逻辑分析 搜索su=可以很快找到加密的位置,上图看到e.su ...