作者:绿色风
分类:
时间:2022-08-18
浏览:137
楼主 liuguansky |
字符串:just just justso justso sojust just just so so 测试内容:上面全是英文单词,以空格间隔。要求:对连续的单词去重后返回;不可在代码中出现任何循环性语句 得到结果:just justso sojust just so 答题时限:15天
欢迎参与,开题后欢迎讨论。 具体效果如下图所示
|
2楼 kevinchengcw |
- Sub test3()
- Dim RegEx As Object, N&, Str$
- Set RegEx = CreateObject("vbscript.regexp")
- With RegEx
- .Global = True
- .Pattern = "((^|\b)\w+)\s+(?=\1\b)|(\s)(?=\3)"
- End With
- Cells(2, 1) = RegEx.Replace(Cells(1, 1).Value, "")
- Set RegEx = Nothing
- End Sub
有的话继续出 |
3楼 shun2233 |
正想学习一下 |
4楼 xyh9999 |
哈哈,直接从我excel笔记中的一段复制上来一下,好象半年前或更久些在哪看到过。 1、正则去掉连续重复词符的一种办法
- Function del_cf(cSS) '去掉连续重复词符
- Dim RegEx As Object
- Set RegEx = CreateObject("VBscript.RegExp")
- With RegEx
- .MultiLine = False
- .Global = True
- .IgnoreCase = True
- .Pattern = "\b(\w+)\b(\s+\1\b)+"
- End With
- del_cf = Trim(RegEx.Replace(cSS, "$1"))
- Set RegEx = Nothing
- End Function
2、正则去掉连续重复字符的一种办法(指字符,不是本题要求的,也贴一下。)
- 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
|
5楼 xyh9999 |
想起来了,是四五个月前在 http://www.exceltip.net/thread-10566-3-1.html 中回复问题时写过一些类似的正则的东西。 |
6楼 raulerini |
我也来试试
- Sub raulerini()
- Dim myreg As New RegExp, mystr$ '引用regexp 5.5
- myreg.Pattern = "(\b.+\b)\1+"
- myreg.IgnoreCase = False
- myreg.MultiLine = True
- myreg.Global = True
- mystr = [a1].Value
- MsgBox myreg.Replace(mystr, "$1")
- End Sub
|
7楼 wise |
- Sub test()
- Dim RegEx As Object
- Dim str As String, mystr As String
- str = "just just justso justso sojust just just so so"
- Set RegEx = CreateObject("VBscript.RegExp")
- With RegEx
- .MultiLine = False
- .Global = True
- .IgnoreCase = True
- .Pattern = "\b(\w+)\b(\s+\1\b)+"
- End With
- mystr = RegEx.Replace(str, "$1")
- MsgBox mystr
- End Sub
|
8楼 水星钓鱼 |
答题过了。我也来试试- Sub AddSymbol()
- Dim oRegExp As Object
- Dim sStr As String
- sStr = "just a a bb abc abc aa abc b b"
- Set oRegExp = CreateObject("vbscript.regexp")
- With oRegExp
- .Global = True
- .Pattern = "([a-zA-Z]+ )\1"
- MsgBox .Replace(sStr & " ", "$1")
- End With
- End Sub
|
9楼 bluexuemei |
修改下水星钓鱼的代码:- Sub AddSymbol()
- Dim oRegExp As Object
- Dim sStr As String
- sStr = "just a a a bb abc abc aa abc b b"
- Set oRegExp = CreateObject("vbscript.regexp")
- With oRegExp
- .Global = True
- .Pattern = "([a-zA-Z]+ )\1+"
- MsgBox Trim(.Replace(sStr & " ", "$1"))
- End With
- End Sub
|
10楼 92lvnet3 |
一定要赞一个才好
|
11楼 qyote |
学习学习 |
12楼 朱少伎 |
好我骂你 |
13楼 谢保威岐 |
要顶的啊,楼主辛苦了,谢谢 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一