正则表达式之量词

Posted 鹏哥工作室之office

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式之量词相关的知识,希望对你有一定的参考价值。

正则表达式之量词


前面章节我们见识了正则表达式中元字符的强大,但有时候我们想要匹配的字符串有长度的要求,正则表达式中的量词就是专门为解决这个问题而生的。


正则表达式中的量词如下:


?       匹配前面的子表达式零次或一次。

+         匹配前面的子表达式一次或多次。

*          匹配前面的子表达式零次或多次。

{n}n     是一个非负整数。匹配确定的n次。

{n,}    n是一个非负整数。匹配确定的n次。

{n,m} n和m均为非负整数,其中n<=m。匹配前面子表达式最少n次,最多m次。


我们通过具体的案例来体会下:


案例一:


正则表达式之量词


图中B列数据姓名之间有的有换行符,有的没有,有的有多个换行符,有的只有一个,我们希望把他梳理成右边的格式。


我们只要匹配出每个单元格中的汉字,至少两个字,因为姓名之间有换行符,所以用"\S{2,}"就能匹配出每个姓名来。


代码如下:

Sub 规范格式()

Dim regx As Object, mat, n%, k, rng

Set regx = CreateObject("vbscript.regexp")

With regx

        .Global = True

        .Pattern = "\S{2,}"

         For Each rng In [b2:b5]

                Set mat = .Execute(rng)

                For Each k In mat

                n = n + 1

                Cells(rng.Row, n + 2) = k

                Next

                n = 0

         Next

End With

End Sub


当然我们也可以写成.Pattern = "\S+"


案例二:


正则表达式之量词


把原数据中的“-”统一成两个。


匹配“-”至少两次


代码如下:

Sub 规范格式1()

Dim regx As Object, rng

Set regx = CreateObject("vbscript.regexp")

With regx

        .Global = True

        .Pattern = "-{2,}"

End With

For Each rng In [a2:a7]

Cells(rng.Row, 2) = regx.Replace(rng.Value, "--")

Next

End Sub


案例三:


正则表达式之量词


这是前几天一位群友问我的问题,把原数据中连续的8位数字提取出来。


代码如下:


Sub 规范格式2()

Dim regx As Object, mat, n%, k, rng

Set regx = CreateObject("vbscript.regexp")

With regx

        .Global = True

        .Pattern = "\d{8}"

         For Each rng In [a2:a5]

                Set mat = .Execute(rng)

                For Each k In mat

                n = n + 1

                Cells(rng.Row, n + 1) = k

                Next

                n = 0

         Next

End With

End Sub


通过上面三个例子,大家应该多量词有所了解了吧!


今天的分享就到这里了!


正则表达式之量词


后台回复下列红色关键词可以获取相关资源:

1、office365, office 365, 365,可以获取office365版本

2、excel学习Excel学习,可以获取相关的学习资料

3、VBA学习可以获取相关的学习资料

4、excel扩展,可以获取excel扩展工具,能让excel更加高效方便的工作

5、百度云破解限速,可以获取相关软件

6、PPT模板ppt模板,可以获取相关资源

7、快查手册,可以获取函数快查手册

8、微信清粉清粉可以获取微信僵尸粉清理软件

注意是后台回复,不是留言区回复,而且回复的关键字必须跟上面的关键字一样,注意大小写,空格之类。

正则表达式之量词

长按识别下方二维码关注,

后台菜单中有更多精彩内容等着你!

苹果用户可通过下方二维码赞赏!


觉得不错请点赞!!!

以上是关于正则表达式之量词的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaScript 正则表达式中使用 1+ 所有格量词时出现正则表达式错误

正则表达式 - 将 C# 正则表达式转换为 JavaScript 正则表达式的量词的目标无效

java正则表达式-量词

java正则表达式-量词

这两个正则表达式有啥区别? (理解?量词)

正则表达式量词