ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 正则表达式如何去掉两个连续相同的字符

正则表达式如何去掉两个连续相同的字符

作者:绿色风 分类: 时间:2022-08-17 浏览:140
楼主
wise
Q:正则表达式如何去掉两个连续相同的字符?
A:使用"(.)\1"可以达到去掉两个相同的字符的效果。
  1. Sub YY()
  2. Dim reg As Object
  3. Dim str As String
  4. str = "112233aabbb"
  5. Set reg = CreateObject("VBscript.regexp")
  6. reg.Global = True
  7. reg.Pattern = "(.)\1" '去掉两个连续相同的字符
  8. str = reg.Replace(str, "")
  9. Set reg = Nothing
  10. MsgBox str
  11. End Sub

2楼
开心萝卜
呵呵,下载使用。谢谢分享
3楼
xyh9999
'补充:将连续重复的字符只保留一个
Function del_cfzf(cSS) '将连续重复的字符只保留一个
Dim RegEx As Object
    Set RegEx = CreateObject("VBscript.RegExp")
    With RegEx
        .MultiLine = False
        .Global = True
        .IgnoreCase = True
        .Pattern = "(.)(\1)+"
    End With
        del_cfzf = Trim(RegEx.Replace(cSS, "$1"))
    Set RegEx = Nothing
End Function
4楼
xyh9999
版主的这个是去掉2个连续相同的字符,如果要去掉多个连续相同的字符用:
reg.Pattern = "(.)\1"   改成  reg.Pattern = "(.)\1+"
可用字符串"a111b222ccc"测试一下修改前后的差别
5楼
wise
+代表一个或多个,的确那样

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap