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. NFC性价比高频读卡器首选方案:FM17550

    FM17550具有低电压.低功耗.驱动能力强.多接口支持.多协议支持等特点.适用于低功耗.低电压.低成本要求的非接触读写器应用,及NFC协议兼容的NFC设备. FM17550是一款高度集成的工作在13 ...

  2. 021、Java中汉子与数字的相互转换,利用字符变量保存中文

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  3. c# GlobalAddAtom GlobalDeleteAtom

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. yolov3输出检测图片位置信息

    前言 我们在进行图片识别后需要进行进一步的处理,该文章会介绍:1.怎样取消lables;2.输出并保存(.txt)标记框的位置信息 一.去掉label 在darknet/src/image.c 收索d ...

  5. 关于js中异步问题的解决方案

    在js中有一个始终无法绕过的问题,如何优雅地解决异步问题.实际上,js在执行过程中,每遇到一个异步函数,都会将这个异步函数放入一个异步队列中,只有当同步线程执行结束之后,才会开始执行异步队列中的函数, ...

  6. 每天一点点之python - 基础语法

    1.字符串的拼接 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125) 输出结果如下: 可以通过和c语言一样,也可以通过format()来实现 2.简单运 ...

  7. 云时代架构阅读笔记六——Java内存模型详解(二)

    承接上文:云时代架构阅读笔记五——Java内存模型详解(一) 原子性.可见性.有序性 Java内存模型围绕着并发过程中如何处理原子性.可见性和有序性这三个特征来建立的,来逐个看一下: 1.原子性(At ...

  8. CharacterEncodingFilter这个spring的过滤器

    org.springframework.web.filter.CharacterEncodingFilter 对请求于响应的编码进行过滤,半路出家的和尚总是对什么都感觉到好奇,都想记录下来(

  9. VS Code 单文件、多文件(工程) 配置文件

    针对于单文件编译运行,需要在代码文件夹下建立子文件夹 .vscode ,并放置三个文件 1:c_cpp_properties.json,注意更改7.8.11行的路径 { "configura ...

  10. 如何通过模仿提升Paper写作能力?

    对于大部分初到国外留学的中国留学生们来说要想自己独立完成一篇Paper可能难度会很大,从Paper字体字号要求.Paper写作格式.Paper写作结构等等诸多因素都会影响留学生们写Paper的效率.对 ...