用正则表达式 删除字符串中重复的字符串

jdttzxdn 2015-01-20 11:40:47

1111
2222
3333
1111
2222
3333
用换行符把字符串隔开
删除重复项后得到如下答案:
1111
2222
3333

求正则表达式

...全文
1886 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Carlven2012 2015-02-03
  • 打赏
  • 举报
回复


Option Explicit

Private Sub Command1_Click()
List1.Clear
Dim re As New RegExp
Dim ms As MatchCollection, m As Match, i As Integer, j As Integer
With re
.MultiLine = True
.Global = True
.IgnoreCase = True
.Pattern = "([^\n]+\n)"
Set ms = .Execute(Text1)
For i = 0 To ms.Count - 1
For j = 0 To i - 1
If ms(i) = ms(j) Then Exit For
Next
If j = i Then List1.AddItem ms(i)
Next
End With
Set re = Nothing
End Sub
无·法 2015-01-31
  • 打赏
  • 举报
回复
正则不是万能的。别为了用正则而正则。这个场景是正则是无能为力的。 楼上说的字典方法是一个很有效并且快速筛选重复的办法。 下面提供一个我之前写的VBS脚本。保存到文本文件然后后缀名改成vbs就可以了

'描述:直接将要筛选相同行的文件拖到这个vbs文件上即可
'作者:sysdzw
'邮箱:sysdzw@163.com
'QQ:171977759
'12:51 2009-7-12
Dim strFileSource, strFileResult,t1

On Error Resume Next
strFileSource = wscript.Arguments(0)
strFileResult = Left(strFileSource, InStrRev(strFileSource, ".") - 1) & "_out.txt"

If strFileSource <> "" Then
    t1=Time()
    Set fso = CreateObject("scripting.filesystemobject")
    Set stream = fso.opentextfile(strFileSource, 1, False)
    Set stream2 = fso.opentextfile(strFileResult, 2, True)

    Set dict = CreateObject("scripting.dictionary")


    While Not stream.atendofstream
        Line = stream.readline
        If Not dict.Exists(Line) Then
            Call dict.Add(Line, Null)
            Call stream2.writeline(Line)
        End If
    Wend
    
    stream.Close
    stream2.Close
    MsgBox "处理完毕!总计耗时 " & DateDiff("s",t1,Time) & " 秒。" & vbCrLf & vbCrLf & strFileResult, vbInformation, "Del Same Line QQ:171977759"
Else
    MsgBox "no file!", vbExclamation, "Del Same Line QQ:171977759"
End If
赵4老师 2015-01-23
  • 打赏
  • 举报
回复
Dictionary 对象 描述 对象,用于存储数据关键字和条目对。 语法 Scripting.Dictionary 说明 Dictionary 对象与 PERL 关联数组等价。可以是任何形式的数据的条目被存储在数组中。每个条目都与一个唯一的关键字相关联。该关键字用来检索单个条目,通常是整数或字符串,可以是除数组外的任何类型。 下面的代码举例说明了如何创建一个 Dictionary 对象: Dim d '创建一个变量 Set d = CreateObject(Scripting.Dictionary) d.Add "a", "Athens" '添加一些关键字和条目 d.Add "b", "Belgrade" d.Add "c", "Cairo" ...

741

社区成员

发帖
与我相关
我的任务
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧