曼城足球论坛技术论坛

找回密码
收费注册

QQ登录

只需一步,快速出手

EH搜索
足球 Home精品图文教程库
足球 2016函数公式进修大典 制造核心竞争力的职场宝典
曼城足球论坛出品 - VBA代码宝收费下载
你的足球 2010实战技巧进修锦囊 足球 VBA典范代码实践指南
观察: 204366 | 回复: 571
打印 上一主题 下一主题

[原创] 正则表达式入门与提高---VBA平台的正则进修参考资料

[复制链接]

TA的精华主题

TA的得分主题

跳转到指定楼层
1
揭晓于 2014-6-10 23:10 | 只看该作者 | 只看大图 回帖赞美 | 倒序阅读 | 阅读形式
本帖已被收录到常识树中,索引项: 文本治理和正则
本帖最后由 liu-aguang 于 2014-6-17 14:02 编辑

正则表达式入门与提高
有一位美国佬编写的<<精明正则表达式>>专业书籍是世人公认的正则权威著作.但它不太适合初学者,加倍是没有相关编程说话背景及书中所及的种种计算机技术常识的读者.其中很多晦涩难懂的形式在VBA中用不上或者对你来说根本无用的,而初学者的你却根本不知道怎样取舍,足球直播论坛。.事实上,自己还没有发现一本针对VBA平台的正则专业书籍.网络可见到少量VBA正则教程,但形式多是点到为止”.
鉴于此,有此贴文.在这里感谢本论坛liucqa教员的鼓励,在之前自己写过一篇正则对象操作的短文,liucqa教员留贴发起多写一点,但一致未能成文.此帖算是对liucqa教员的交代.

形式提要
顺利迈越初期进修正则窒息的最好方法是:首先鸟览正则的全貌,在头脑中建立正则地图的概貌,然后按图索骥刻画充盈每个细节.
基础篇的第一章盘算为你构建一个正则体系的"地图“轮廓.第二章周到解读了正则在VBA中的实现(即正则对象的操作).第三至第六章分类先容VBA中可使用的全部元字符(序列).它相当于VBS程序员手册中的正则形式局限.但充盈了更多在实践中会遇到的细节
元字符进阶篇”,讨论了元字符的应用环境以及对若干个常用元字符(序列)的深入辨析和应用探索.
原理篇”:正则表达式工作原理是最重要同时也是最难以掌握的常识.研究这个题目有时确凿很死板,然而弄懂正则表达式的工作原理,才是真正理解正则的关键.正则工作原理能够让你根据任务编制出准确高效的正则表达式,也能够协理你理解他人编写的正则表达式,另外也帮你分析”为什么是这个结婚结果?的真正起因,从而更精准地调较正则表达式.
技巧篇”:不要指望背诵单词和掌握语法就能够写出时兴的文章.掌握正则的方法也是必要大宗阅读与实践的,本篇提供了一些现实世界的实例,供你参考和探讨.望它能给你一些编制正则表达式的灵感.
目录
第一篇 基础篇
一、 正则表达式概论理解正则表达式
二、 正则表达式与VBA的交互正则表达式的实现
三、 正则元字符字符的表示法
四、 正则元字符数量的表示法
五、 正则元字符名望的表示法
六、 正则元字符分组及担任表示法
第二篇 进阶篇
一、 元字符与字符集
二、 ^$的名望终究是哪里
三、 字符组外部元字符转义规则
四、 字符组与多选机关“|”
五、 否定环视与否定字符组
六、 顺序环视的多角度理解与应用
第三篇 原理篇
一、结婚的基本术语
二、结婚总原则
三、正则表达式结婚的基本过程
四、回溯
五、回溯的总结
六、回溯与效率
七、灾难回溯
第四篇 技巧篇
一、结婚具有多种样式机关的字符串
二、结婚特定名望上的字符串
三、结婚其外部由相像机关字符串构成的字符串
四、在一大段文本中。
五、结婚一对特殊字符界定的之间的字符串。


点评

写得很周到。 揭晓于 2014-6-11 20:33

评分

参与人数 61 鲜花 +136 收起 理由
liyanghu + 2 太健壮了
1055751654 + 2 太健壮了
nbz + 2 优异作品
libaoshui + 2
aoe1981 + 3 优异作品

观察全部评分

TA的精华主题

TA的得分主题

2
楼主 | 揭晓于 2014-6-10 23:19 | 只看该作者
本帖最后由 liu-aguang 于 2014-6-11 22:26 编辑


第一篇 基础篇

一、正则表达式概论----理解正则表达式

文本治理是一项罕见的工作任务。,查找、更换、提取、考证、分离和删除等特定字符或字符串。在几乎所有文本编辑器中(如word/excel/VBE等)都提供了字符串的查找/更换功能;在编程说话的世界里更是提供了丰富的字符治理函数和方法。,足球直播论坛。VBA中有Find(查找某字符串)、Replace(用一字符串去更换文本中的另一字符串)、LIke(鉴定某字符串是否存在)等等。
编程说话自己提供的字符治理函数或方法,央求条件在一大段文本中,就显得力所不及了。足球直播论坛。举个例子,假使要治理某一类具有某些相像特征的字符或字符串,虎扑足球论坛。具有用法纯粹、治理快速和使用便利的特点。不过这些函数或方法也存在很大缺陷:它们通常都是对非常具体的字面文字举行操作。VBA自己提供的字符治理函数来治理,仅靠编程说话自己是不够的。为此,足球直播论坛。在现实的世界里对复杂静态文本的治理,显然不是一件容易的事。可见。----正则表达式计划。
正则表达式是健壮、便利、高效的文本治理工具。应用它使用者能够描述和分析任何复杂的文本,足球比分论坛。配合编程说话或文本编辑器提供的支持。java/C#/C++/.net/php/pcre/perl等)几乎都提供了对正则表达式的支持;有些文本编辑器(如Dreamweaver)在编辑查找框中也可间接输入正则表达式。VBA虽然只是对正则提供纯粹支持。VBA函数或方法难以治理的文本治理任务。
(一)正则表达式计划治理文本的基本思路
1、显然,不论举行何种文本治理操作,首先要在主意文本中找出指定的字符串,而要查找它们必需得描述出该字符串的特征。譬喻,足球赛免费直播。你要考证用户输入的是否是一个准确的电子邮箱。,是以首先得依据电子邮箱规范,建立一个电子邮箱的形式,然后对比该形式到文本中去查找考证,从而鉴定主意文本中是否存在与形式相吻合的字符串(这个过程也称之结婚过程,查找到的结果叫结婚”)。一个纯粹的电子邮箱形式能够表示为:
^\S+@\S+$
这个代码形式就是电子邮箱的正则表达式,也就是编制准确高效的正则表达式,足球正则表达式入门与进足球直播论坛步。所以正则表达式是一种能够在许多当代应用程序和编程说话中使用的特殊形式的代码形式。编制这样的代码形式。
2、如何将编制好的正则表达式应用于编程说话,在这一点上,VBA平台的正则进修参考材料。这是进修和使用正则的第二个题目,实现我们真正的必要。.庆幸的是,较之编制正则表达式,掌握它们是非常纯粹的事。我们会在本篇的第二章“正则与VBA的交互”中周到陈说。
(二)正则表达式的基本组成单元—元字符(序列)
从电子邮箱的正则表达式(^\S+@\S+$)能够看到,正则表达式是由一些特殊字符组成的。人们往往把这些组成正则表达式的特殊字符称之为元字符。元字符是正则表达式事先规定或商定的。,有的是由两个或多个特殊字符组成一个单元。,”\S”表示一个非不可见字符,我们能够称之为元字符序列.在正则表达式中也能够有字面字符。@,在这时表示的是字面上”@”.所以从形式上观察,正则表达式是由元字符、元字符序列或字面字符组成的。.正则表达式也能够仅由字面字符组成,正则ABC”.
你是否有一种素昧平生的感觉?!这不是什么稀奇的想法.远古的DOS时代,先辈门就曾用*号代表任意多个字符,?号代表一个任意字符,那时称之为“通配符”;当下的VBA中Like函数的参数里有更多的特殊字符或机关,用来描述字符或字符串形式.不过,正则表达式里,那些特殊字符更多,语法规则更丰富,能够认为,它相当于是一门微型说话.
接上去,本章会把所有的元字符(序列)分类展示给你,不是要你立马记住或掌握它,目的是让你有个概貌,制止在从此的进修中丢失方向.


评分

参与人数 15 鲜花 +31 收起 理由
wggx4 + 2 优异作品
nbz + 2 优异作品
viaj + 1 太健壮了
abc + 3 优异作品
IRVING/123 + 2 优异作品

观察全部评分

TA的精华主题

TA的得分主题

3
楼主 | 揭晓于 2014-6-10 23:21 | 只看该作者
本帖最后由 liu-aguang 于 2014-6-16 19:17 编辑

1.正则表达式规定了多种方法或符号用来表示世界各国使用的文字字符。如:足球VBA法式启迪。



下面枚举了VBA中正则表示字符的所有元字符(序列),在从此的章节中会周到先容.
(1) 常用不可打印字符:\n、\t、\f、\r、\v
(2) 八进制转义:\num (num是一个八进制数),曼城足球论坛技术论坛。
(3) 十六进制转义:\xnum (num是一个十六进制数)
(4) Unicode转义:\unum (num是unicode代码点),足球。
(5) 担任字符:\cchar (char是A-Z之间的任意字母),球正。
(6) 大凡字符组:[a-z]和[^a-z]
(7) 几乎能结婚任何字符的元字符:英文句点
(8) 字符组缩略表示法:\w、\d、\s、\W、\D、\S

2.表示字符或字符串数量(连续发觉的次数)的元字符:正则表达式。*、?、+、{n}、{n,m} 例:


3.表示名望的元字符(序列)^$\b\B(?=…)(?!...)例:

4.在正则表达式中起分组、捕捉和担任作用的元字符(序列)
(…)(?:…)\1…|…|…*?+???{num,num}?
:

捕捉9.PNG (22.65 KB, 下载次数: 2089)

捕捉9.PNG

捕捉.PNG (22.47 KB, 下载次数: 1489)

捕捉.PNG

评分

参与人数 10 鲜花 +20 收起 理由
1055751654 + 2 太健壮了
shisen_he + 2 太健壮了
pengs14 + 2 优异作品
abc + 3 太健壮了
abccba_ln + 2

观察全部评分

TA的精华主题

TA的得分主题

4
楼主 | 揭晓于 2014-6-10 23:42 | 只看该作者
本帖最后由 liu-aguang 于 2014-6-12 08:13 编辑

(三)用正则治理文本的一个例子
我们已经认识了几个纯粹的元字符(序列),并能用它们构建一些实用的正则表达式,入门。那么,怎样把它们应用于VBA中呢。
主意文本:”正则表达式其实很纯粹 “
任务:删除主意文本中行尾空格.
分析:
1.\s可表示空格,足球。+表示发觉一个或多个字符,所以可用”\s+”表示连续多个空格.$表示一行的行尾。
\s+$
2.我们把上面的正则代码表达式作用于主意文本,直播。查找与形式吻合的字符(串),并用空字符更换,从而达成实现删除空格任务。
下面是完备的VBA代码:
Sub Test()
Dim regx, S$, Strnew$
S = "正则表达式其实很纯粹 "
Set regx = CreateObject("vbscript.regexp"),论坛。
regx.Pattern = "\s+$"
regx.Global = True
Strnew = regx.Replace(S, "")
MsgBox Strnew
End Sub
这个纯粹的例子说明了正则实现的一般举措:
1、 制造变量:这个例子中。
2、 把主意文本赋值给变量S
3、 制造一个正则对象regx
4、 设置正则对象regx的pattern属性,即把正则表达式以字符串形式赋值给pattern.vba。
5、 设置正则regx对象的其它属性,例子中设置Global属性为真,平台。
6、 应用对象提供的方法,实现相应功能.正则。例子中,应用regx对象的Replace方法实现更换.
7、 输出治理后的字符串.
到这里,你已经完全了解了用正则治理文本的基本过程和思路,进修。以及在VBA中使用正则的代码框架.从此的任务是全面掌握正则的所有元字符和它们的工作原理,另外还必要进一步了解正则对象的各种属性和方法.
要提醒的是,”基础篇”的应用实例或许并不是解决该任务的最佳计划,参考。也或许是一些看似很无聊的例子,材料。但请不要忽视它们.正是透过这些纯粹的实例,暴露了概念的性质.


补充形式 (2014-6-20 19:04):
最近看了liucqa教员一个贴子,在治理"大字符串"时,即使可用VBA函数或方法治理,足球。但不如用正则治理速度快.譬喻:用Split将用逗号连接的10万个数字字符串转化的为数组,如果用正则治理,只必要一半的时间.

补充形式 (2016-6-8 07:30):
本页例中的regx.Global=True语句,vba。此时不是必需的,只是为了说明属性的应用.

评分

参与人数 5 鲜花 +11 收起 理由
abccba_ln + 2 太健壮了
aoe1981 + 3 纯粹的实例,暴露了概念的性质
wuzaijin2012 + 2 优异作品
小行星B612 + 2 太健壮了
范德萨 + 2 优异作品

观察全部评分

TA的精华主题

TA的得分主题

5
楼主 | 揭晓于 2014-6-11 08:35 | 只看该作者
本帖最后由 liu-aguang 于 2014-6-12 08:15 编辑

.正则与VBA的交互正则表达式的实现
在连接进修正则元字符特性或编制自己的正则表达式时,往往必要对其测试.你能够用一些专门的正则测试工具(推选RegxBuddy);也能够自己编制VBA代码举行测试。不过发起初学者,经常编写VBA代码举行测试,在进一步进修正则元字符特性之前,启迪。这样能够提高今后实际应用正则的能力。所以。VBA的交互的相关常识。你能够快速阅读或越过本章形式,在从此具体应用时。,在从此的进修中专注于正则表达式自己.
用正则治理文本。
一是集成式。Perl说话自己内建正则操作符。.操作符作用于正则表达式就像数学的+-号作用于数字一样.不必要构建正则对象。例如:任务是要把变量$text生存的文本中的空行更换为标签(

)。

正则表达式
^$ 表示空行.
Perl说话中,能够用一句代码实现更换:$text=~ s/^$/

/g

二是函数式治理。Java等说话,为正则治理提供了一些便利函数,以节减工作量.用户不必要首先制造一个正则对象,而是用静态函数提的权且对象来完成正则治理,治理完后把权且对象放手. 正则表达式对付函数相当于一个参数, 这种方式的利益是随手可用,但不适宜在对时间央求条件很高的循环中使用.所以java也提供了下面讲到的面向对象的程序式治理.
三是面向对象的程序式治理。这是大大都编程说话的正则治理方式。足球。VBA平台采用的也是这种方式。面向对象的程序式治理方式。,然后设置对象必要的属性。(提示:不同编程说话的正则对象具有的属性和方法,所以,其项目若干好多或功能强弱有所不同。VBA中使用正则如果发现没有某种其它说话的方法或属性。)

TA的精华主题

TA的得分主题

6
楼主 | 揭晓于 2014-6-11 08:38 | 只看该作者
本帖最后由 liu-aguang 于 2014-6-14 21:03 编辑

在上一章中,我们给出了一个用VBA删除行尾空格的正则治理例子,它代表了一般的代码框架形式。,并对每一部门的代码段举行剖析:
Sub test()
Dim regx,S$,论坛。Strnew$ 1.定义变量代码段
S=”正则表达式其实很纯粹 “ 2.主意文本字串变量赋值代码段
Set regx=createobject(“vbscript.regexp”) 3.技术论坛。制造正则对象代码段
Regx.pattern=”\s+$” 4.足球正则表达式入门与进足球直播论坛步。设置正则对象的pattern属性代码段
Regx.global=true 5.VBA平台的正则进修参考材料。设置正则对象的其它属性代码段
Strnew=regx.replace(s,足球VBA法式启迪。””) 6.应用正则对象方法代码段
Msgbox strnew 7.,曼城足球论坛技术论坛。治理前往值代码段
End sub
1.定义变量代码段
不用疏解了吧.
2.主意文本字符串赋值代码段
主意文本,可能存在于文本文档、Word文档、HTML文档或足球文档等文档之中。正则对象并不能间接作用于这些文档。VBA正则治理这些文档。,那么,你可能必要编写特殊的代码将窜改后的文本字符串重新写回原文档中.
:假使主意文本存在于方今表格A1单元格中.可使用下列代码赋值于字符变量S
S=Activesheet.[a1]
主意文本也可能辞别存在于一个数组中,那么,你可能必要经过循环逐一治理.
你也能够间接以输入的方式,赋值给字符变量,就像上面的例子.这时特别注意的是:半角双引号是VBA说话中的保存字符,如果主意文本中自己含有半角双引号,则必需转义,转义方法是:用重复的双引号表示一个双引号.
:主意文本为:”我们用汗牛充栋学富五车形容一个人读的书、具有的常识多。”.
将之赋值给S的代码为:
S=”我们用””汗牛充栋””””学富五车””形容一个人读的书、具有的常识多。

评分

参与人数 1 鲜花 +2 收起 理由
范德萨 + 2 优异作品

观察全部评分

TA的精华主题

TA的得分主题

7
楼主 | 揭晓于 2014-6-11 08:42 | 只看该作者
本帖最后由 liu-aguang 于 2014-6-17 18:33 编辑

3.制造正则对象代码段
文本治理的各种操作,都是经过操作正则对象来完成的.足球。所以必需制造正则对象.VBA制造或声明正则对象有两方式:晚期绑定和后期绑定。
晚期绑定: (必要在VBE--工具--援用中勾选Microsoft VBScript Regular Expressions 5.5),直播。
Dim regx AS RegExp
Set regx=new regexp (或dim regx as new regexp),论坛。
后期绑定:
Set regex = CreateObject("VBScript.RegExp")
应用上述两种方式制造或声明正则对象,实际上是调用Microsoft VBScript脚本的regexp正则对象。Microssoft VBScript脚本,包罗在Internet Eeplorer 5.5以及之后的版本中.该脚本中的正则表达式执行的是ECMA-262第3版所规定的圭臬。
(提示:在VBA中也可调用JavaScript(Jscript)或ruby等脚本中的正则对象,Jscript的元字符及特性与VBscript是一样的,但它的方法或属性要多一点,或者说对正则的支持更强一些.ruby自己不懂,不太了解它的元字符集,只是看到论坛上有人使用)
4.设置对象的pattern属性
语法:object.pattern=”正则表达式”
Object是一个正则对象.
把自己编制的正则表达式,以字符串的形式赋值给pattern属性。注意要用英文双引号将正则表达式笼罩起来.
并且要在对象名与属性名之间用英文点号隔开.属性名pattern是保存字,固定不变的,对象名是用户自定义的。
接上去的两个举措是对正则对象的操作,经过设置或使用正则对象的属性和方法,以实现对文本的治理.正则对象的属性和方法不多,列表于下:



TA的精华主题

TA的得分主题

8
楼主 | 揭晓于 2014-6-11 08:53 | 只看该作者
本帖最后由 liu-aguang 于 2014-6-11 10:22 编辑

5.设置对象的其它属性
除Pattern属性外,正则对象还有其它三个属性,能够不用显示设置;如果要改变默许属性,默许值都是False。如果要使用默许属性,其属性值有False和True。
Global 当属性值为False时,只消在主意文本中,找到一个结婚时,即停止搜索。如果想要找出主意文本中的所有结婚。
IgnoreCase 设置对英文字母大大写是否迟钝。默许值False, 对大大写迟钝;设置为True,忽略大大写.
MultiLine 它影响且只影响元字符^和$的意义。值为False,那么,$表示文本末端名望。值为True,^表示第一行的出手;唯有一个行结局名望,整个文本中则唯有一个出手名望,不论主意文本是若干好多行。
下面来完成一个纯粹的任务。
有一两行的文本:
Aaa
Bbb
任务央求条件:
1.在文本出手和结局处,辞别拔出一个”@”符号;
2.在文本每行的出手和行尾辞别拔出”@”符号。
正则表达式:
^|$ 表示结婚行出手或结局名望
任务1代码:
Sub test1()
Dim reg, s$
s = "Aaa" & vbLf & "bbb" '这里用vblf 表示行之间的换行符
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "^|$"
reg.Global = True
s = reg.Replace(s, "@")
MsgBox s
End Sub
讨论:
Msgbox 最后显示的结果为:
@Aaa
Bbb@
代码中窜改了global的默许属性值,设置为true;目的是保证能找到并更换全部的出手或结局名望。如果连结默许属性。
正则对象Reg的其它两个属性连结为默许。由于本任务有关乎字母大小题目。
代码中使用了对象reg的replace方法,它的作用是,将在主意文本中找到的结婚(出手和结局名望)更换为”@”字符,在这里实际上是拔出。然后把窜改后的文本前往。
任务2代码:
Sub test2()
Dim reg, s$
s = "Aaa" & vbLf & "bbb"
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "^|$"
reg.Global = True
reg.MultiLine = True
s = reg.Replace(s, "@")
MsgBox s
End Sub
讨论:
任务2代码与任务1代码独一区别是窜改了mutiline默许属性,设置为True。这就意为着,该文本的每一行都存在一个出手名望和结局名望。所以Msgbox最后显示的结果为:
@Aaa@
@Baa@

评分

参与人数 8 鲜花 +15 收起 理由
HDK123 + 2 值得确定
shisen_he + 2
wxxydl + 2 优异作品
elepeipei + 2 优异作品
aoe1981 + 2 讲得好!

观察全部评分

TA的精华主题

TA的得分主题

9
楼主 | 揭晓于 2014-6-11 09:00 | 只看该作者
本帖最后由 liu-aguang 于 2014-6-15 23:05 编辑

6.应用对象的方法代码段
VBScirpt正则对象的方法共有三个:你能够根据任务央求条件选取使用一个或多个方法.
(1)TEST方法
语法:Object.Test(string)
Test方法只是纯粹测试主意文本中,是否包罗正则表达式所描述的字符串。如果存在。
例:用代码检测用户的输入是否是一个电子邮箱。
Sub ChkEmail()
Dim reg, s$
s = InputBox("请输入一个电子邮箱:")
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "^\S+@\S+$"
If reg.Test(s) Then
MsgBox "你输入的电子邮箱格式准确: " & s
Else
MsgBox "你输入的电子邮箱格式不准确!"
End If
End Sub
讨论:
代码从用户那里获得字符串,然后赋值与字符变量S。考证邮箱的正则表达式非常简略,元字符序列"\S"表示不是空格的任意一个字符,后面紧跟一个+号表示一个以上字符。这个表达式事实上只考证了用户的输入里,由于我们刚刚接触正则,可能就十分复杂,在字符串之间是否有一个@符号。它甚至认为”0@中”都是准确的。下面给出一个更为肃穆的电子邮箱正则表达式:“^[\w.-]+@[\w.-]+$”当然要肃穆按电子邮箱规范写出正则表达式。
这里要关注的是,如果Test前往的是true,主意字符串用英文括号笼罩。在这个例子中,作为参数,在方法与正则对象之间也是用英文点号隔开,test方法的语法。
(2)Replace方法
更换在主意文本中用正则表达式查找到的字符串。
后面例子中语句呈现其语法:s=reg.replace(s,”@”)
后面括号中的参数S,代表后面代码中设置的主意文本字符串.也就是正则表达式将要作用的主意文本.”@”是用来更换的字符串参数.后面的s是Replace方法前往的结果,它是主意文本被更换后的一个副本. 如果没有找到结婚的文本。
下面连接讨论Replace方法的第二个参数:
例子中"@"是一个字面字符。
上一章我们知道了如果在正则表达式中使用了元字符序列()括号,那么被圆括号笼罩的形式会存储在特殊变量$1中。在有些编程说话中。
例子:在主意文本中的数字数据后增加上单位:KG
主意文本:“他们体重辞别是:张三56,李四49。
结果文本央求条件: “他们体重辞别是:张三56KG,李四49KG。
正则表达式:(\d+)
更换文本: $1KG
Sub testrep()
Dim reg, s$
s = "他们体重辞别是:张三56,李四49。
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "(\d+)"
reg.Global = True
s = reg.Replace(s, "$1KG")
MsgBox s
End Sub
讨论:
用正则表达式(\d+),Replace方法将在主意文本中找到三个结婚,其值辞别是56,49,60。并辞别把每个值生存于每一个结婚对象的$1变量中。
更换文本:”$1KG”表示每一个结婚中的$1变量值与字面字符”KG”连结,组成新字符串,用来更换找到的数据字符串。
$1是一个很特殊的变量,它由美元符号与数字编号组成.如果正则表达式中有两个或两个以上的捕捉性括号,则依照左括号”(“从左到右顺序编号,自动命名为$1,$2,$3….,共支持99组.要指出的是,如果找到多个结婚,那么每个结婚中的特殊变量名是一样的.这个例中共有三个结婚其值辞别为56,49,60.第一个结婚的变量名是$1,第二和第三个结婚的变量名仍然是$1,只是每个结婚中$1生存的值是不一样的.
最后一点,作为更换参数的一部门,$1变量与字面字符共同组成更换字符串时,它们之间不用 & 符号连接,并且 $1 必需放在一个双引号中;而如果是用其它大凡变量与字面字符连结组成更换文本时,则必需用 & 符号连接,这一点与VBA代码使用方法相同.
在Replace方法的第二个参数中,还有几个很少用到的特殊变量:

一个较特殊的状况,如果上面所述的特殊变量符不是作为变量使用,而是要以它们作为字面字符的更换文本,那么就要对它们转义,方法是在它们之前加一个美元符号$.$$&

评分

参与人数 5 鲜花 +10 收起 理由
zrf4112 + 2 感谢协理
jy0 + 2 优异作品
hjqandylau + 2 优异作品
aoe1981 + 2 优异作品
頔頔酱 + 2 优异作品

观察全部评分

TA的精华主题

TA的得分主题

10
楼主 | 揭晓于 2014-6-11 09:12 | 只看该作者
本帖最后由 liu-aguang 于 2014-6-11 18:46 编辑

(3)Execute方法
在主意文本中执行正则表达式搜索。
语法:set mh=object.execute(s)
其中mh是用户自定的对象变量,S是值为主意文本的字符串变量.object是正则对象.
Execute方法会作用于主意文本(S),并前往一个叫作"Matches"的集合对象,在这里是mh.在这个集合对象中包罗它找到的所有叫做"Match"的乐成结婚对象(Matches集合最多可容纳个结婚对象). 如果未找到结婚。
Matches集合中包罗的结婚对象Match有四个只读属性:Value/firstindex/length/submatches
值得一提的是,Submatches属性是一个集合属性,集合中元素个数与正则表达式中使用的捕捉性括号的个数相同,每个元素的值就是括号笼罩起来的形式.它也有两个只读属性:item和Count
下面用树状图来表示它们之间的关系,并在接上去的形式中连接逐一讨论它们的用法.

评分

参与人数 8 鲜花 +18 收起 理由
风云驿 + 2 优异作品
ykk1999 + 2 太健壮了
weisilisid + 2 优异作品
陈天龙 + 2
aoe1981 + 3 删繁就简,此处最高

观察全部评分

您必要登录后才能够回帖 登录 | 收费注册

本版积分规则

关闭

最新热点上一条 /2 下一条

关注官方微信,高效办公专列,每天发车

手机版|关于我们|联系我们|曼城足球论坛

GMT+8, 2020-9-1 02:02, Processed in 0.0 second(s), 12 queries , Gzip On, MemCache On.

Powered by X3.4

? 1999-2020 Wooffice Inc.

本论坛群情纯属揭晓者个人主张,任何违犯国家相关法律的群情。

快速回复 前往顶部 前往列表