找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1573|回复: 1

[精彩文萃] 正则模型

[复制链接]

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-12-12 21:05:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 /db_自贡黄明儒_ 于 2016-12-12 21:21 编辑

By 香川群子
如果知道一点英文,理解记忆会更快。

\w
→ word 首字母 w
表示26个英文字符【A-Za-z】以及下划线【_】和数字【0-9】的集合,
.Pattern ="\w" 等价于 .Pattern ="[0-9a-z_A-Z]"

其中有英文字符很好理解,因为英语中的word肯定是由英文字母构成的。
另外,在VBA编程中,变量还可以含有数字和下划线,因此数字和下划线也被当做构成统一word的要素。

除此之外的其它字符,都不算构成word的要素了。


…………

\d
→ digit 首字母 d
表示数字【0-9】的集合,
.Pattern ="\d" 等价于 .Pattern ="[0-9]"


…………

\s
→ separate 首字母 s   或space、tab、return简称str字符的首字母。
表示分隔符号 含space 空格【 】或【char(32)】、回车vbCr【char(13)】、换行vbLf【char(10)】、vbTab【char(9)】等,
全部ASCII码值为: char(9)、char(10)、char(11)、char(12)、char(13)、char(32)(空格)

分隔符号的单独分开是\t   tab 首字母  vbTab【chr(9)】或 其反集 \T  

\v   verticaltab 首字母  vbVerticalTab【chr(11)】或 其反集 \V  

\f   formfeed 首字母  vbFormFeed【chr(12)】或 其反集 \F

\r   回车 return 首字母 r 而在VBA中对应的是:vbCr【chr(13)】或 其反集 \R   (Cr是Carriage Return的简称,是机械式打字机时代,字车carriage回复return 到最左边开始的意思 )
     苹果机(MAC OS系统) 采用回车符Cr 表示下一行.

\n   换行 newline 首字母n  vbLf【chr(10)】或 其反集 \N
   (Lf是Line Feed的简称,是机械式打字机时代,回车的同时自动滚进一行的意思 )
     UNIX/Linux系统采用 换行符Lf 表示下一行.

\r\n 回车换行  vbCrLf【chr(13) & chr(10)】
     Dos和windows系统 采用 回车+换行CrLf 表示下一行,


=================

接下来介绍,对上述几个常用元序列/集合,使用小写字母时是有效,含有的意思,
而使用大写字母时是无效,排除(不含有)的意思,

如:

\W → word 首字母 大写 W 标记的【英文字母、数字、下划线】的序列/集合的反集

小写字母w .Pattern ="\w" 等价于 .Pattern ="[0-9a-z_A-Z]"

大写字母W .Pattern ="\W" 等价于 .Pattern ="[^0-9a-z_A-Z]"


2.

\D → digit 首字母 大写 D 标记的【数字】的序列/集合的反集

小写字母d .Pattern ="\d" 等价于 .Pattern ="[0-9]"

大写字母D .Pattern ="\D" 等价于 .Pattern ="[^0-9]"


3.

\S → separate 首字母 大写 S 标记的不可见换行字符的序列/集合的反集

小写字母s .Pattern ="\s" 等价于 含有char 9,10,11,12,13,32

大写字母S .Pattern ="\S" 等价于 不含有char 9,10,11,12,13,32

\b 和 \B

begin 的首字母 b

意义: 以上述\s separate 集合分隔后得到的每一个 \w word 中的第1个begin字符。

如:
abe sau
dty12 f_34

执行小写字母b .Pattern ="\b." 则得到每一个word的首字母:a s d f

=====

执行大写字母B .Pattern ="\B." 则得到每一个word的首字母以外的字符:b e a u t y 1 2 _ 3 4
更多图片 小图 大图
组图打开中,请稍候......
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2226个

财富等级: 金玉满堂

发表于 2016-12-12 21:50:30 | 显示全部楼层
啥也不说了,感谢楼主分享哇!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 14:22 , Processed in 0.172441 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表