Udemy."></a>
       <a class=bob体育主页
Udemy业务 浏览Udemy课程
  • B0B体育平台下载
  • 它与软件
  • 数据科学
  • b0b体育app下载
  • 人力资源时代
  • 业务
  • bobapp应用
  • 市场营销
  • 设计
  • B0B体育平台下载
  • 它与软件
  • 数据科学
  • b0b体育app下载
  • 人力资源时代
  • 业务
  • bobapp应用
  • 市场营销
  • 设计
搜索图标"></span>
        </form>
       </div>
      </div>
     </div>
    </div>
   </div>
  </header>
  <article>
   <div class=
  1. 博客家
  2. bobapp应用
  3. VBA Regex:如何评估和使用“正则表达式”
bobapp应用

VBA Regex:如何评估和使用“正则表达式”

Udemy编辑器
分享这篇文章分享图标"></span></a>
       </div>
      </div>
     </div>
    </div>
   </div>
   <div class=

VBA正则表达式"src=VBA或Visual Basic for Applications是Microsoft Excel中的强大编程工具。常规表达式类使VBA程序能够执行正则表达式搜索。后者是文本模式,可以帮助搜索包含具有特定和定义标准的电子邮件地址,电话号码和其他条件的字符串。在这个中级教程中,我们通过VBA Regex来走。我们假设您在Excel中具有VBA的基本知识。如果不是,我们建议你在进一步进行之前,通过我们的Excel VBA基础课程.你也可能很快通过本教程阅读,了解您可以使用VBA完成所有内容的感觉.

什么是vba正则表达式(正则表达式)?

“正则表达式”是用于匹配模式的等式。最重要的用途包括,字符串搜索和替换。RegEx可以许多编程语言提供,包括VBA,VB,VBScript,JavaScript,C#,VB.Net,Java,PHP等。您可以跳过和查看正则表达式在C中是如何使用的用这门课。

  • 量词

需要量词来匹配几个字符。这里有几个。

图案

意义

例子

- - - - - - 表示一个范围 a-z表示从a到z的所有字母
[] 代表任何一个引用的字符 [a -Z]是a, b,…,Z
() 用于分组目的
| 意思是'或' X|Y,表示X或Y
+ 匹配字符一次或多次 Zo +匹配zoo,但不匹配z
* 匹配字符0次或多次 “lo*”可以匹配“l”或“loo”
? 匹配字符0或一次 “b ? ve ?匹配never中的“ve”。

  • 特殊字符

正则表达式覆盖了很多特殊字符。我们来看一些常用的。

特殊字符

意义

. 匹配任何单个字符
$ 匹配输入的末尾
\ n 匹配换行符
^ 匹配输入的开头
\ t 匹配制表符
\ d 匹配0 ~ 9的数字
D. 匹配非数字字符
\ w 匹配任何包含“_”的字母数字字符
W. 匹配任何非字母数字字符
\ s 匹配任何空格字符,包括制表符、空格、换行符、换行符
S. 匹配任何非白色空间字符
\r 匹配回车字符;回车键
\ 如果需要匹配特殊字符。例如“\”。”、“\ \”
v \ 找到垂直选项卡

  • 字符类

可以将字符放在方括号内进行分组。

图案

意义

[XYZ] 匹配字符x,y或z。
的[a -ž] 匹配a和z之间的任何字符。
[^ abc]、[^ 0 - 9] 开头的“^”符号表示“not”。这里匹配的是除a,b,c以外的字符。
(+ * ?) 告诉您,方括号内的大多数特殊字符没有任何意义。这个特殊的表达式匹配方括号内的任何特殊字符。

正则表达式大小写敏感吗?答案是“是”和“不是”。这完全取决于您编写regex代码并在程序中调用它们的方式。

正则表达的局限性

字符串中的某些模式不能通过正则表达式匹配。这是一个计算模式的出现次数的示例。模式是“anbn”。这里字符“a”和“b”都重复n次。原因是正则表达式不能跟踪出现的次数。

在需要处理大量数据的地方,避免使用RegEx是明智的。原因是,如果不正确地使用RegEx模式,可能会导致程序的效率低下。要了解更多关于VBA正则表达式以及如何使用它们,请查看本课程.

访问VBA RegExp对象

打开Microsoft Excel应用程序。单击Developer选项卡。从这里选择Visual Basic。从visual Basic菜单栏中,选择插入->模块。

模块打开新工作表后,请转到“工具”选项卡并选择“引用”。在这里,您可以获得包含复选框的项目列表。搜索VBScript的正则表达式。检查相应的复选框。

正则表达式具有三种regexp方法和四个regexp属性。让我们来看看他们每个人:

regexp方法

  1. 执行方法- 在此方法中,提取来自字符串的模式的匹配或匹配。
  2. 替代方法- 在这里搜索字符或字符串,一旦发现它被替换为新字符或字符串。
  3. 测试-此方法用于查找给定字符串中是否匹配正则表达式模式。该方法返回“True”或“False”。测试方法等价于测试找到的匹配数是否大于0。

RegExp方法的属性

  1. 图案—支持单个字符和字符串。您可以浏览上面表格中提到的模式,并根据您的需求在您的程序中使用它们。
  2. 全球-该属性的参数为“True”或“False”。默认为“False”。如果您将参数设置为“True”,它将在字符串中找到所有匹配项。但是,如果默认情况下,它将只检查第一个匹配。
  3. Ignorecase.—该参数可以接受“True”或“False”。默认值为“False”,区分大小写。如果您想要搜索忽略大小写,那么将值设置为“True”。
  4. 多数 -该参数接受“True”或“False”。如果该值设置为true,它将搜索多行字符串的每一行。而“False”只搜索当前行。

让我们在示例程序中使用上面列出的属性

示例1:要测试字符串是有效的电子邮件地址的VBA程序

sub regex_tester()
设置objregexp_1 = createObject(“vbscript.regexp”)
objregexp_1.global = true
objregexp_1.ignorecase = true
objRegExp_1.Pattern = [a - z、a - z] * @ [a - z、a - z] *。com。
strToSearch = "[电子邮件受保护]"
设置regExp_Matches = objRegExp_1.Execute(strToSearch)
如果regExp_Matches。数= 1
MsgBox(“此字符串是有效的电子邮件地址。)
万一
终止子

在这个程序中,我们声明了subsuboutineregex_tester()。

Set Objregexp_1 = CreateObject(“vbscript.regexp”),此语句从VBScript创建正则表达式对象。该对象具有执行正则表达式搜索的函数。如果您希望正则表达式匹配字符串,只需进一步发生字符串集,“objregexp1.global = true。”如果您想匹配字符串集的所有出现“objregexp.global = false”。If you want your regular expression to ignore the case of string, set “objRegExp1.IgnoreCase=true” If case is important set this property to false.”objRegExp_1.Pattern=[a-z,A-Z]*@[a-z,A-Z]*.com” this pattern denotes the string with alphabetical characters before and after @ symbol. If the regular expression object match the text in your input string set “regExpMatches.Count=1”

这里是另一个VBA RegEx方法程序,查找和替换字符串。让我们来看一看。

例2:Excel VBA RegEx替换函数

函数RegExpReplace1(ByVal WhichString1 As String, _ .
ByVal Pattern1As字符串,_
ByVal ReplaceWith1As字符串,_
可选的byval isgrobal1as boolean = true,_
可选ByVal IsCaseSensitive1As Boolean = True)作为字符串
昏暗的objRegExp作为对象
设置objRegExp = CreateObject("vbscript.regexp")
objRegExp。全球= IsGlobal1
objRegExp。图案= Pattern1
objregexp.ignorecase =不是iscaseSensity1
RegExpReplace = objRegExp。替换(WhichString ReplaceWith)
结束功能

    

在此程序中,用户可以在使用参数“byval”时在运行时输入值。使用参数的值调用函数regexpreplace1。一个参数是要搜索的字符串;另一个参数是替换字符串。请注意,全局属性设置为true。这意味着搜索字符串的所有匹配项。该程序搜索字符串的出现,并使用替换字符串替换它们中的每一个。

你也可以这样做检查出整洁的VBA例子在本课程由MrExcel.

函数只提取字符串中的数字

函数OnlyNumbers_1(byvalwhostring As String) As Variant
onlynumbers = cdbl(regexpreplace(regexpreplace(以restring,_
“[^ 0 - 9]”,vbNullString,真正的))
结束功能

请注意,CDBL()将表达式转换为Type Double。

更多关于regex.replace方法

正则表达式。指定输入字符串中的Replace方法将匹配正则表达式模式的字符串替换为指定的替换字符串。此方法是重载的,即相同的函数名与不同数量和类型的参数一起使用。调用什么函数是由传递的参数的数量和类型决定的。我们将介绍几个重载的dreplace函数。

替换(字符串,字符串,int32)在指定的输入字符串中,将匹配正则表达式模式的指定最大字符串数替换为指定的替换字符串。

替换(字符串,字符串,字符串)—在指定的输入字符串中,该函数用指定的替换字符串替换所有匹配指定正则表达式的字符串。

替换(字符串,字符串,int32,int32)—在In子字符串中,该函数用指定的替换字符串替换匹配正则表达式模式的最大字符串数。

关于Replace()方法的更多信息在我们的高级VBA课程中涵盖在这里。

学习编程最好的方法是亲自尝试。您必须摆弄代码,看看事情是如何解决的。请自己尝试这些例子,并让我们知道你的反馈。如果你需要一个快速复习课程,请随意通过无限的技能来实现这一令人敬畏的Excel VBA课程.

页面最后更新:2020年2月

Udemy编辑器
Udemy编辑最近的文章
  • Excel数据验证:了解Excel的数据验证工具
  • 职场积极思考:给员工的10个建议
  • 5加速工作场所学习的先进技术

推荐的文章

bobapp应用

Excel VBA选择案例:使用VBA自动为您做出选择!

Udemy编辑器
bobapp应用

Excel VBA自动筛选:如何使用筛选器突出显示您的数据

Udemy编辑器
bobapp应用

Excel VBA日期:与您的约会有乐趣!

Udemy编辑器
bobapp应用

如何有效分配和使用数组长度VBA数组长度

Udemy编辑器
bobapp应用

Excel VBA删除行:删除你不需要的东西

Udemy编辑器
bobapp应用

CStr VBA函数:如何将不同的表达式转换为字符串

Udemy编辑器
bobapp应用

VBA Print: Get Your Visual Basic Application to Print for You

Udemy编辑器
bobapp应用

Excel VBA Do While:循环它的正确方式

Udemy编辑器
bobapp应用

Visual Basic项目:创建简单项目

Udemy编辑器
bobapp应用

Visual Basic定时器:如何使用它来安排你的任务

Udemy编辑器
分享这篇文章

  • Facebook图标"></span></a></li>
        <li><a class=Twitter图标"></span></a></li>
        <li><a class=电子邮件图标"></span></a></li>
       </ul>
      </div>
     </div>
    </div>
   </div>
   <div id=

    Excel VBA顶级课程

    Excel VBA宏:超消除歧义的Excel VBA编程
    格兰特赌博
    4.5 (987)
    畅销书
    解锁Excel VBA和Excel宏
    莱拉Gharani
    4.7 (26766)
    畅销书
    Microsoft Excel VBA简介
    凯尔·佩
    4.5 (1160)
    完整的Web自动化与Excel VBA
    丹尼尔强
    4.7 (735)
    畅销书
    熟练掌握微软Excel宏和Excel VBA
    凯尔·佩
    4.5 (11622)
    畅销书
    最终Excel VBA
    马克Talbert
    4.7 (3,194)
    Excel VBA编程 - 完整指南
    Boris Paskhaver.
    4.7 (3,726)
    Excel VBA:如何像专业版一样编写宏
    Paul Kelly.
    4.6 (1156)
    Excel宏和Excel VBA编程初学者
    Andreas Exadaktylos
    4.5 (854)
    评价最高
    Excel与Microsoft Excel VBA用户表单
    凯尔·佩
    4.6 (1,180)
    Excel VBA练习和现实世界项目
    Karen Tateosyan.
    4.4 (220)
    Excel宏和VBA初学者
    Bluelime学习解决方案
    4.5 (15)
    新的

    更多Excel VBA课程

  • Excel VBA的学生也可以学习

    Excel宏 Excel Excel仪表板 数据透视表 Excel Analytics. Excel图表 Excel的快捷方式 Excel公式和函数 Microsoft Access. 数据分析 微软权力BI 自动化 微软办公软件 微软Word.

    让你的团队。领导行业。

    通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

    请求一个演示

    在网上教世界

    创建一个在线视频课程,到达全球的学生,赚钱。
    教授UeDemy.

    • Udemy业务
    • 教授UeDemy.
    • Udemy应用程序
    • 关于我们

    • 职业生涯
    • 博客
    • 帮助和支持
    • 联盟

    • 网站地图
    • 受欢迎的课程

    • 条款
    • 隐私政策和Cookie政策
    • 网站地图
    • 特色课程
    • 得到了应用

    bob体育主页Udemy, Inc.
    条款隐私政策和Cookie政策