携手共进
创造美好未来

he的汉字,excel vba 正则表达式?

Excel在进行数据处理时,不可避免地要从一堆文本中识别出所需的数据。正则表达式就是一个便捷、高效的文本处理工具,利用它分析任何复杂的文本,配合编程语言能够查找、替换、提取、各种类型的文本和数据。当今主流编程语言都提供了对正则表达式的支持。

正则表达式处理文本的思路:首先要在目标文本中找出指定的字符串,而要查找它们必须得先描述出该字符串的特征。正则表达式用一些”特殊字符”来表述指定字符串的结构,这些组成正则表达式的”特殊字符”称之为元字符。元字符是正则表达式事先规定的,用来表示字符、位置、数量和控制的专用符号。在组成正则表达式的元素中,有的是由两个或多个特殊字符组成一个单元,表示单一意义。比如:“牛肉 75.5/斤” 要提出其中的数据,正则表达式表示为:[一-龢] |d .?d?

he的汉字,excel vba 正则表达式?

正则表达式用元字符建立一个数据的模式,然后用该模式到文本中去查找,查找到的结果叫”匹配”。如果示例中匹配到3条记录,对应需要的品名、价格、单位。

下面列举一些在VBA中正则表达式中常用的元字符

[一-龢] 代表汉字(汉字“一”,汉字“龢”拼音HE),另一种表述 [u4E00-u9FA5];d 代表数字(半角状态下的数字), 另一写法[0-9],区别是:[0-9]这种表述可以缩小范围,如写成[0-6],就不会匹配大于6的数字了; “.” 就是小数点能代替所有字符, 除“n” 换行符外;.就代表1个小数点, 此符号为转义符。

[a-zA-Z] 代指 英文的大小写字母; w 单个数字、字母和_ ;W 代表的字符为 w不能代表的;D 数字之外的字符(包括字母,汉字,空格,下划线,各种符号);

s 看不见的字符(空格,换行符,回车,换页等); S 与小写s相反,代表所有看得见的字符或符号;

n 代一个换行符; r 代一个回车符; t 代一个制表符(tab键);

八进制转义:num (num是一个八进制数); 十六进制转义:xnum (num是一个十六进制数)

Unicode转义:unum (num是unicode代码点),上面汉字的第二种表述就属于这个。

根据示例介绍几个特殊字符:”|” 选择符,例:”中国|China” 表示匹配目标文本中的”中国”或”China”两个字符串。(示例中有用到,如果不用,[一-龢] d .?d?这个正则表达式的代表意思就为:汉字 数字(可能有小数的数字)。因为真实文本内容在数字前有空格,去掉”|”后根本匹配不到数据)

()小括号,捕获性括号,把括号内的元字符匹配到的内容进行分组记录,匹配到1次就记在分组1中,2次就依次2个分组。正则引擎有特殊的变量$1、$2来代表分组。

^ 代表文本开始的位置;$ 代表文本结束的位置。^$组合在一起,表示空数据了。

量词:元字符通常只是代表单个某类字符,所以要配合量词才能完整表述文本的结构进行匹配,不加量词匹配得到的就是单个字符。

he的汉字,excel vba 正则表达式?

在上面示例中” ” 表示”元字符代表的” 1次或多次出现; ? 表示”元字符代表的” 出现了0次或1次,如果超过1次,因?意义,匹配得到的也只有1次,即单个字符。*表示”元字符代表的” 出现了0次或1次或多次。

{n}、{n,m}也是量词表示法,n与m 都要是正整数。{n} 表示”元字符代表的” 出现了n次,如果”元字符代表的”出现超过了N次呢? {n,m} 表示”元字符代表的” 出现了n次到m次。

he的汉字,excel vba 正则表达式?

匹配的数据以容许范围内,匹配之后,再判断剩下的数据是否匹配?匹配到”牛肉牛”后,剩下的汉字只有”牛”,不满足表达式所述的最少2次,不再被匹配。

注:量词要紧跟在元字符之后才有数量之意;如? 如果出现在小括号()中,就是另外的意思了。

版权声明:本站资源及文章图片来自互联网及其他公众平台,版权归原作者,如有侵权请联系我们删除!
文章链接:http://www.rujiaoqi1.com/103564.html